mirror of
https://github.com/GreptimeTeam/greptimedb.git
synced 2026-05-18 05:50:41 +00:00
Deploying to gh-pages from @ GreptimeTeam/greptimedb@fcb77fd025 🚀
This commit is contained in:
208
partition/utils/split/enum.ExprSplitDegradeReason.html
Normal file
208
partition/utils/split/enum.ExprSplitDegradeReason.html
Normal file
File diff suppressed because one or more lines are too long
4
partition/utils/split/fn.atom_col_op_val.html
Normal file
4
partition/utils/split/fn.atom_col_op_val.html
Normal file
@@ -0,0 +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="Extracts `(column, op, value)` from a canonicalized atomic expression."><title>atom_col_op_val in partition::utils::split - 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-17e0aaed.css"><meta name="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="partition" data-themes="" data-resource-suffix="" data-rustdoc-version="1.96.0-nightly (ac7f9ec7d 2026-03-20)" data-channel="nightly" data-search-js="search-63369b7b.js" data-stringdex-js="stringdex-2da4960a.js" data-settings-js="settings-170eb4bf.js" ><script src="../../../static.files/storage-41dd4d93.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-5013f961.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-f7c3ffd8.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 fn"><a class="skip-main-content" href="#main-content">Skip to main content</a><!--[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="#">atom_col_op_val</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../partition/index.html">partition</a><span class="version">1.0.0</span></h2></div><div class="sidebar-elems"><div id="rustdoc-modnav"><h2><a href="index.html">In partition::<wbr>utils::<wbr>split</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" tabindex="-1"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../index.html">partition</a>::<wbr><a href="../index.html">utils</a>::<wbr><a href="index.html">split</a></div><h1>Function <span class="fn">atom_<wbr>col_<wbr>op_<wbr>val</span> <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/partition/utils/split.rs.html#535-544">Source</a> </span></div><pre class="rust item-decl"><code>fn atom_col_op_val(
|
||||
expr: &<a class="struct" href="../../expr/struct.PartitionExpr.html" title="struct partition::expr::PartitionExpr">PartitionExpr</a>,
|
||||
) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><(<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>, <a class="enum" href="../../expr/enum.RestrictedOp.html" title="enum partition::expr::RestrictedOp">RestrictedOp</a>, Value)></code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Extracts <code>(column, op, value)</code> from a canonicalized atomic expression.</p>
|
||||
</div></details></section></div></main></body></html>
|
||||
4
partition/utils/split/fn.collect_and_atoms.html
Normal file
4
partition/utils/split/fn.collect_and_atoms.html
Normal file
@@ -0,0 +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="Flattens an expression into atomic terms when it is a pure conjunction tree."><title>collect_and_atoms in partition::utils::split - 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-17e0aaed.css"><meta name="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="partition" data-themes="" data-resource-suffix="" data-rustdoc-version="1.96.0-nightly (ac7f9ec7d 2026-03-20)" data-channel="nightly" data-search-js="search-63369b7b.js" data-stringdex-js="stringdex-2da4960a.js" data-settings-js="settings-170eb4bf.js" ><script src="../../../static.files/storage-41dd4d93.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-5013f961.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-f7c3ffd8.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 fn"><a class="skip-main-content" href="#main-content">Skip to main content</a><!--[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="#">collect_and_atoms</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../partition/index.html">partition</a><span class="version">1.0.0</span></h2></div><div class="sidebar-elems"><div id="rustdoc-modnav"><h2><a href="index.html">In partition::<wbr>utils::<wbr>split</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" tabindex="-1"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../index.html">partition</a>::<wbr><a href="../index.html">utils</a>::<wbr><a href="index.html">split</a></div><h1>Function <span class="fn">collect_<wbr>and_<wbr>atoms</span> <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/partition/utils/split.rs.html#513-532">Source</a> </span></div><pre class="rust item-decl"><code>fn collect_and_atoms(expr: &<a class="struct" href="../../expr/struct.PartitionExpr.html" title="struct partition::expr::PartitionExpr">PartitionExpr</a>, out: &mut <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="../../expr/struct.PartitionExpr.html" title="struct partition::expr::PartitionExpr">PartitionExpr</a>>) -> <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>Flattens an expression into atomic terms when it is a pure conjunction tree.</p>
|
||||
<p>Returns <code>false</code> if any <code>OR</code> is encountered, signaling caller to skip this
|
||||
simplification path.</p>
|
||||
</div></details></section></div></main></body></html>
|
||||
27
partition/utils/split/fn.collect_conjunction_bounds.html
Normal file
27
partition/utils/split/fn.collect_conjunction_bounds.html
Normal file
@@ -0,0 +1,27 @@
|
||||
<!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="Collects per-column bounds and passthrough atoms from a pure `AND` tree."><title>collect_conjunction_bounds in partition::utils::split - 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-17e0aaed.css"><meta name="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="partition" data-themes="" data-resource-suffix="" data-rustdoc-version="1.96.0-nightly (ac7f9ec7d 2026-03-20)" data-channel="nightly" data-search-js="search-63369b7b.js" data-stringdex-js="stringdex-2da4960a.js" data-settings-js="settings-170eb4bf.js" ><script src="../../../static.files/storage-41dd4d93.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-5013f961.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-f7c3ffd8.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 fn"><a class="skip-main-content" href="#main-content">Skip to main content</a><!--[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="#">collect_conjunction_bounds</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../partition/index.html">partition</a><span class="version">1.0.0</span></h2></div><div class="sidebar-elems"><div id="rustdoc-modnav"><h2><a href="index.html">In partition::<wbr>utils::<wbr>split</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" tabindex="-1"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../index.html">partition</a>::<wbr><a href="../index.html">utils</a>::<wbr><a href="index.html">split</a></div><h1>Function <span class="fn">collect_<wbr>conjunction_<wbr>bounds</span> <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/partition/utils/split.rs.html#567-656">Source</a> </span></div><pre class="rust item-decl"><code>fn collect_conjunction_bounds(
|
||||
expr: &<a class="struct" href="../../expr/struct.PartitionExpr.html" title="struct partition::expr::PartitionExpr">PartitionExpr</a>,
|
||||
) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="struct" href="struct.CollectedConjunction.html" title="struct partition::utils::split::CollectedConjunction">CollectedConjunction</a>></code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Collects per-column bounds and passthrough atoms from a pure <code>AND</code> tree.</p>
|
||||
<p>Scope and intent:</p>
|
||||
<ul>
|
||||
<li>This helper is shared by <a href="fn.is_empty_and_conjunction.html" title="fn partition::utils::split::is_empty_and_conjunction"><code>is_empty_and_conjunction</code></a> and
|
||||
<a href="fn.simplify_and_bounds.html" title="fn partition::utils::split::simplify_and_bounds"><code>simplify_and_bounds</code></a> so both paths interpret conjunction atoms the same
|
||||
way.</li>
|
||||
<li>It only handles conjunction-only expressions. If any <code>OR</code> is present, it
|
||||
returns <code>None</code> and lets callers keep their conservative fallback behavior.</li>
|
||||
</ul>
|
||||
<p>Behavior:</p>
|
||||
<ul>
|
||||
<li>Tightest lower/upper bounds are recorded per column.</li>
|
||||
<li><code>=</code> contributes both a lower and an upper bound at the same value.</li>
|
||||
<li><code>!=</code> and non-range atoms are preserved in <code>passthrough</code> for callers that
|
||||
need to rebuild the conjunction.</li>
|
||||
<li><code>has_conflict</code> is set when atomic constraints already contradict each
|
||||
other (for example <code>a = 1 AND a <> 1</code>).</li>
|
||||
</ul>
|
||||
<p>Notes:</p>
|
||||
<ul>
|
||||
<li>This helper is intentionally a bit more general than the current
|
||||
<code>split_partition_expr</code> contract, which now only feeds range-only
|
||||
conjunctions into the main split path.</li>
|
||||
</ul>
|
||||
</div></details></section></div></main></body></html>
|
||||
1
partition/utils/split/fn.discrete_value_index.html
Normal file
1
partition/utils/split/fn.discrete_value_index.html
Normal file
@@ -0,0 +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="API documentation for the Rust `discrete_value_index` fn in crate `partition`."><title>discrete_value_index in partition::utils::split - 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-17e0aaed.css"><meta name="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="partition" data-themes="" data-resource-suffix="" data-rustdoc-version="1.96.0-nightly (ac7f9ec7d 2026-03-20)" data-channel="nightly" data-search-js="search-63369b7b.js" data-stringdex-js="stringdex-2da4960a.js" data-settings-js="settings-170eb4bf.js" ><script src="../../../static.files/storage-41dd4d93.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-5013f961.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-f7c3ffd8.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 fn"><a class="skip-main-content" href="#main-content">Skip to main content</a><!--[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="#">discrete_value_index</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../partition/index.html">partition</a><span class="version">1.0.0</span></h2></div><div class="sidebar-elems"><div id="rustdoc-modnav"><h2><a href="index.html">In partition::<wbr>utils::<wbr>split</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" tabindex="-1"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../index.html">partition</a>::<wbr><a href="../index.html">utils</a>::<wbr><a href="index.html">split</a></div><h1>Function <span class="fn">discrete_<wbr>value_<wbr>index</span> <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/partition/utils/split.rs.html#191-203">Source</a> </span></div><pre class="rust item-decl"><code>fn discrete_value_index(v: &Value) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.i128.html">i128</a>></code></pre></section></div></main></body></html>
|
||||
3
partition/utils/split/fn.fold_and_exprs.html
Normal file
3
partition/utils/split/fn.fold_and_exprs.html
Normal file
@@ -0,0 +1,3 @@
|
||||
<!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="Folds a list of expressions into a left-associated AND tree. Returns `None` if the input list is empty."><title>fold_and_exprs in partition::utils::split - 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-17e0aaed.css"><meta name="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="partition" data-themes="" data-resource-suffix="" data-rustdoc-version="1.96.0-nightly (ac7f9ec7d 2026-03-20)" data-channel="nightly" data-search-js="search-63369b7b.js" data-stringdex-js="stringdex-2da4960a.js" data-settings-js="settings-170eb4bf.js" ><script src="../../../static.files/storage-41dd4d93.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-5013f961.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-f7c3ffd8.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 fn"><a class="skip-main-content" href="#main-content">Skip to main content</a><!--[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="#">fold_and_exprs</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../partition/index.html">partition</a><span class="version">1.0.0</span></h2></div><div class="sidebar-elems"><div id="rustdoc-modnav"><h2><a href="index.html">In partition::<wbr>utils::<wbr>split</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" tabindex="-1"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../index.html">partition</a>::<wbr><a href="../index.html">utils</a>::<wbr><a href="index.html">split</a></div><h1>Function <span class="fn">fold_<wbr>and_<wbr>exprs</span> <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/partition/utils/split.rs.html#719-721">Source</a> </span></div><pre class="rust item-decl"><code>fn fold_and_exprs(exprs: <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="../../expr/struct.PartitionExpr.html" title="struct partition::expr::PartitionExpr">PartitionExpr</a>>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="struct" href="../../expr/struct.PartitionExpr.html" title="struct partition::expr::PartitionExpr">PartitionExpr</a>></code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Folds a list of expressions into a left-associated AND tree.
|
||||
Returns <code>None</code> if the input list is empty.</p>
|
||||
</div></details></section></div></main></body></html>
|
||||
3
partition/utils/split/fn.is_atomic_range_expr.html
Normal file
3
partition/utils/split/fn.is_atomic_range_expr.html
Normal file
@@ -0,0 +1,3 @@
|
||||
<!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="Returns whether `expr` is an atomic `column op value` range predicate."><title>is_atomic_range_expr in partition::utils::split - 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-17e0aaed.css"><meta name="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="partition" data-themes="" data-resource-suffix="" data-rustdoc-version="1.96.0-nightly (ac7f9ec7d 2026-03-20)" data-channel="nightly" data-search-js="search-63369b7b.js" data-stringdex-js="stringdex-2da4960a.js" data-settings-js="settings-170eb4bf.js" ><script src="../../../static.files/storage-41dd4d93.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-5013f961.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-f7c3ffd8.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 fn"><a class="skip-main-content" href="#main-content">Skip to main content</a><!--[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="#">is_atomic_range_expr</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../partition/index.html">partition</a><span class="version">1.0.0</span></h2></div><div class="sidebar-elems"><div id="rustdoc-modnav"><h2><a href="index.html">In partition::<wbr>utils::<wbr>split</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" tabindex="-1"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../index.html">partition</a>::<wbr><a href="../index.html">utils</a>::<wbr><a href="index.html">split</a></div><h1>Function <span class="fn">is_<wbr>atomic_<wbr>range_<wbr>expr</span> <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/partition/utils/split.rs.html#386-393">Source</a> </span></div><pre class="rust item-decl"><code>fn is_atomic_range_expr(expr: &<a class="struct" href="../../expr/struct.PartitionExpr.html" title="struct partition::expr::PartitionExpr">PartitionExpr</a>) -> <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>Returns whether <code>expr</code> is an atomic <code>column op value</code> range predicate.</p>
|
||||
<p>Supported operators are limited to <code><</code>, <code><=</code>, <code>></code>, and <code>>=</code>.</p>
|
||||
</div></details></section></div></main></body></html>
|
||||
1
partition/utils/split/fn.is_domain_max_value.html
Normal file
1
partition/utils/split/fn.is_domain_max_value.html
Normal file
@@ -0,0 +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="API documentation for the Rust `is_domain_max_value` fn in crate `partition`."><title>is_domain_max_value in partition::utils::split - 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-17e0aaed.css"><meta name="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="partition" data-themes="" data-resource-suffix="" data-rustdoc-version="1.96.0-nightly (ac7f9ec7d 2026-03-20)" data-channel="nightly" data-search-js="search-63369b7b.js" data-stringdex-js="stringdex-2da4960a.js" data-settings-js="settings-170eb4bf.js" ><script src="../../../static.files/storage-41dd4d93.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-5013f961.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-f7c3ffd8.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 fn"><a class="skip-main-content" href="#main-content">Skip to main content</a><!--[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="#">is_domain_max_value</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../partition/index.html">partition</a><span class="version">1.0.0</span></h2></div><div class="sidebar-elems"><div id="rustdoc-modnav"><h2><a href="index.html">In partition::<wbr>utils::<wbr>split</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" tabindex="-1"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../index.html">partition</a>::<wbr><a href="../index.html">utils</a>::<wbr><a href="index.html">split</a></div><h1>Function <span class="fn">is_<wbr>domain_<wbr>max_<wbr>value</span> <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/partition/utils/split.rs.html#213-227">Source</a> </span></div><pre class="rust item-decl"><code>fn is_domain_max_value(v: &Value) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></code></pre></section></div></main></body></html>
|
||||
32
partition/utils/split/fn.is_empty_and_conjunction.html
Normal file
32
partition/utils/split/fn.is_empty_and_conjunction.html
Normal file
@@ -0,0 +1,32 @@
|
||||
<!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="Detects whether a pure conjunction expression is definitely unsatisfiable."><title>is_empty_and_conjunction in partition::utils::split - 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-17e0aaed.css"><meta name="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="partition" data-themes="" data-resource-suffix="" data-rustdoc-version="1.96.0-nightly (ac7f9ec7d 2026-03-20)" data-channel="nightly" data-search-js="search-63369b7b.js" data-stringdex-js="stringdex-2da4960a.js" data-settings-js="settings-170eb4bf.js" ><script src="../../../static.files/storage-41dd4d93.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-5013f961.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-f7c3ffd8.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 fn"><a class="skip-main-content" href="#main-content">Skip to main content</a><!--[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="#">is_empty_and_conjunction</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../partition/index.html">partition</a><span class="version">1.0.0</span></h2></div><div class="sidebar-elems"><div id="rustdoc-modnav"><h2><a href="index.html">In partition::<wbr>utils::<wbr>split</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" tabindex="-1"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../index.html">partition</a>::<wbr><a href="../index.html">utils</a>::<wbr><a href="index.html">split</a></div><h1>Function <span class="fn">is_<wbr>empty_<wbr>and_<wbr>conjunction</span> <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/partition/utils/split.rs.html#121-189">Source</a> </span></div><pre class="rust item-decl"><code>fn is_empty_and_conjunction(expr: &<a class="struct" href="../../expr/struct.PartitionExpr.html" title="struct partition::expr::PartitionExpr">PartitionExpr</a>) -> <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>Detects whether a pure conjunction expression is definitely unsatisfiable.</p>
|
||||
<p>Scope and intent:</p>
|
||||
<ul>
|
||||
<li>This checker is intentionally conservative.</li>
|
||||
<li>It only analyzes expressions that can be flattened into:
|
||||
<code>atom1 AND atom2 AND ...</code></li>
|
||||
<li>If any <code>OR</code> is present, it returns <code>false</code> (unknown / not handled here).</li>
|
||||
</ul>
|
||||
<p>Strategy:</p>
|
||||
<ul>
|
||||
<li>For each column, keep only the tightest lower bound (<code>></code> / <code>>=</code>) and
|
||||
tightest upper bound (<code><</code> / <code><=</code>).</li>
|
||||
<li><code>=</code> is treated as both lower and upper bound at the same value.</li>
|
||||
<li><code>!=</code> is tracked per column to catch direct conflicts with <code>=</code>.</li>
|
||||
<li>After bounds are collected, the conjunction is empty iff for any column:
|
||||
<ul>
|
||||
<li>lower value is greater than upper value, or</li>
|
||||
<li>lower value equals upper value but at least one bound is exclusive.</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>For discrete domains (<code>Int*</code>, <code>UInt*</code>), adjacent open bounds with no
|
||||
representable value in between are also treated as empty.</li>
|
||||
</ul>
|
||||
<p>Notes:</p>
|
||||
<ul>
|
||||
<li>This is still a conservative fast path focused on conjunction emptiness
|
||||
detection for split degradation.</li>
|
||||
<li><code>split_partition_expr</code> currently restricts its main path to range-only
|
||||
conjunctions, but this helper remains slightly more general so shared
|
||||
bound collection and direct conflict checks stay reusable.</li>
|
||||
</ul>
|
||||
</div></details></section></div></main></body></html>
|
||||
1
partition/utils/split/fn.is_infinite_value.html
Normal file
1
partition/utils/split/fn.is_infinite_value.html
Normal file
@@ -0,0 +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="API documentation for the Rust `is_infinite_value` fn in crate `partition`."><title>is_infinite_value in partition::utils::split - 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-17e0aaed.css"><meta name="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="partition" data-themes="" data-resource-suffix="" data-rustdoc-version="1.96.0-nightly (ac7f9ec7d 2026-03-20)" data-channel="nightly" data-search-js="search-63369b7b.js" data-stringdex-js="stringdex-2da4960a.js" data-settings-js="settings-170eb4bf.js" ><script src="../../../static.files/storage-41dd4d93.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-5013f961.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-f7c3ffd8.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 fn"><a class="skip-main-content" href="#main-content">Skip to main content</a><!--[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="#">is_infinite_value</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../partition/index.html">partition</a><span class="version">1.0.0</span></h2></div><div class="sidebar-elems"><div id="rustdoc-modnav"><h2><a href="index.html">In partition::<wbr>utils::<wbr>split</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" tabindex="-1"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../index.html">partition</a>::<wbr><a href="../index.html">utils</a>::<wbr><a href="index.html">split</a></div><h1>Function <span class="fn">is_<wbr>infinite_<wbr>value</span> <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/partition/utils/split.rs.html#420-426">Source</a> </span></div><pre class="rust item-decl"><code>fn is_infinite_value(v: &Value) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></code></pre></section></div></main></body></html>
|
||||
1
partition/utils/split/fn.is_nan_value.html
Normal file
1
partition/utils/split/fn.is_nan_value.html
Normal file
@@ -0,0 +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="API documentation for the Rust `is_nan_value` fn in crate `partition`."><title>is_nan_value in partition::utils::split - 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-17e0aaed.css"><meta name="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="partition" data-themes="" data-resource-suffix="" data-rustdoc-version="1.96.0-nightly (ac7f9ec7d 2026-03-20)" data-channel="nightly" data-search-js="search-63369b7b.js" data-stringdex-js="stringdex-2da4960a.js" data-settings-js="settings-170eb4bf.js" ><script src="../../../static.files/storage-41dd4d93.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-5013f961.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-f7c3ffd8.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 fn"><a class="skip-main-content" href="#main-content">Skip to main content</a><!--[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="#">is_nan_value</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../partition/index.html">partition</a><span class="version">1.0.0</span></h2></div><div class="sidebar-elems"><div id="rustdoc-modnav"><h2><a href="index.html">In partition::<wbr>utils::<wbr>split</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" tabindex="-1"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../index.html">partition</a>::<wbr><a href="../index.html">utils</a>::<wbr><a href="index.html">split</a></div><h1>Function <span class="fn">is_<wbr>nan_<wbr>value</span> <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/partition/utils/split.rs.html#412-418">Source</a> </span></div><pre class="rust item-decl"><code>fn is_nan_value(v: &Value) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></code></pre></section></div></main></body></html>
|
||||
@@ -0,0 +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="API documentation for the Rust `is_strictly_greater_than_domain_max` fn in crate `partition`."><title>is_strictly_greater_than_domain_max in partition::utils::split - 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-17e0aaed.css"><meta name="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="partition" data-themes="" data-resource-suffix="" data-rustdoc-version="1.96.0-nightly (ac7f9ec7d 2026-03-20)" data-channel="nightly" data-search-js="search-63369b7b.js" data-stringdex-js="stringdex-2da4960a.js" data-settings-js="settings-170eb4bf.js" ><script src="../../../static.files/storage-41dd4d93.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-5013f961.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-f7c3ffd8.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 fn"><a class="skip-main-content" href="#main-content">Skip to main content</a><!--[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="#">is_strictly_greater_than_domain_max</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../partition/index.html">partition</a><span class="version">1.0.0</span></h2></div><div class="sidebar-elems"><div id="rustdoc-modnav"><h2><a href="index.html">In partition::<wbr>utils::<wbr>split</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" tabindex="-1"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../index.html">partition</a>::<wbr><a href="../index.html">utils</a>::<wbr><a href="index.html">split</a></div><h1>Function <span class="fn">is_<wbr>strictly_<wbr>greater_<wbr>than_<wbr>domain_<wbr>max</span> <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/partition/utils/split.rs.html#205-211">Source</a> </span></div><pre class="rust item-decl"><code>fn is_strictly_greater_than_domain_max(bound: &<a class="struct" href="struct.LowerBound.html" title="struct partition::utils::split::LowerBound">LowerBound</a>) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></code></pre></section></div></main></body></html>
|
||||
1
partition/utils/split/fn.is_supported_value.html
Normal file
1
partition/utils/split/fn.is_supported_value.html
Normal file
@@ -0,0 +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="API documentation for the Rust `is_supported_value` fn in crate `partition`."><title>is_supported_value in partition::utils::split - 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-17e0aaed.css"><meta name="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="partition" data-themes="" data-resource-suffix="" data-rustdoc-version="1.96.0-nightly (ac7f9ec7d 2026-03-20)" data-channel="nightly" data-search-js="search-63369b7b.js" data-stringdex-js="stringdex-2da4960a.js" data-settings-js="settings-170eb4bf.js" ><script src="../../../static.files/storage-41dd4d93.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-5013f961.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-f7c3ffd8.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 fn"><a class="skip-main-content" href="#main-content">Skip to main content</a><!--[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="#">is_supported_value</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../partition/index.html">partition</a><span class="version">1.0.0</span></h2></div><div class="sidebar-elems"><div id="rustdoc-modnav"><h2><a href="index.html">In partition::<wbr>utils::<wbr>split</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" tabindex="-1"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../index.html">partition</a>::<wbr><a href="../index.html">utils</a>::<wbr><a href="index.html">split</a></div><h1>Function <span class="fn">is_<wbr>supported_<wbr>value</span> <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/partition/utils/split.rs.html#395-410">Source</a> </span></div><pre class="rust item-decl"><code>fn is_supported_value(v: &Value) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></code></pre></section></div></main></body></html>
|
||||
31
partition/utils/split/fn.negate_split_expr.html
Normal file
31
partition/utils/split/fn.negate_split_expr.html
Normal file
@@ -0,0 +1,31 @@
|
||||
<!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="Rewrites `NOT(expr)` into an equivalent `PartitionExpr` without introducing a unary NOT node."><title>negate_split_expr in partition::utils::split - 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-17e0aaed.css"><meta name="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="partition" data-themes="" data-resource-suffix="" data-rustdoc-version="1.96.0-nightly (ac7f9ec7d 2026-03-20)" data-channel="nightly" data-search-js="search-63369b7b.js" data-stringdex-js="stringdex-2da4960a.js" data-settings-js="settings-170eb4bf.js" ><script src="../../../static.files/storage-41dd4d93.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-5013f961.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-f7c3ffd8.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 fn"><a class="skip-main-content" href="#main-content">Skip to main content</a><!--[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="#">negate_split_expr</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../partition/index.html">partition</a><span class="version">1.0.0</span></h2></div><div class="sidebar-elems"><div id="rustdoc-modnav"><h2><a href="index.html">In partition::<wbr>utils::<wbr>split</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" tabindex="-1"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../index.html">partition</a>::<wbr><a href="../index.html">utils</a>::<wbr><a href="index.html">split</a></div><h1>Function <span class="fn">negate_<wbr>split_<wbr>expr</span> <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/partition/utils/split.rs.html#250-310">Source</a> </span></div><pre class="rust item-decl"><code>pub fn negate_split_expr(expr: &<a class="struct" href="../../expr/struct.PartitionExpr.html" title="struct partition::expr::PartitionExpr">PartitionExpr</a>) -> <a class="type" href="../../error/type.Result.html" title="type partition::error::Result">Result</a><<a class="struct" href="../../expr/struct.PartitionExpr.html" title="struct partition::expr::PartitionExpr">PartitionExpr</a>></code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Rewrites <code>NOT(expr)</code> into an equivalent <code>PartitionExpr</code> without introducing a unary NOT node.</p>
|
||||
<p>Why this function exists:</p>
|
||||
<ul>
|
||||
<li><code>PartitionExpr</code> only models binary operators.</li>
|
||||
<li>Cut logic needs <code>R AND NOT(S)</code>.</li>
|
||||
<li>We therefore rewrite <code>NOT(S)</code> into an equivalent binary-expression tree.</li>
|
||||
</ul>
|
||||
<p>Rewrite rules:</p>
|
||||
<ul>
|
||||
<li>Atomic comparisons:
|
||||
<ul>
|
||||
<li><code>=</code> <-> <code>!=</code></li>
|
||||
<li><code><</code> <-> <code>>=</code></li>
|
||||
<li><code><=</code> <-> <code>></code></li>
|
||||
<li><code>></code> <-> <code><=</code></li>
|
||||
<li><code>>=</code> <-> <code><</code></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>Boolean composition:
|
||||
<ul>
|
||||
<li><code>NOT(A AND B)</code> => <code>NOT(A) OR NOT(B)</code></li>
|
||||
<li><code>NOT(A OR B)</code> => <code>NOT(A) AND NOT(B)</code></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
<p>Failure behavior:</p>
|
||||
<ul>
|
||||
<li>For <code>AND/OR</code>, both sides must be <code>Operand::Expr</code>; otherwise returns <code>NoExprOperand</code>.</li>
|
||||
<li>Any unsupported shape bubbles up as an error and the caller degrades to no-split.</li>
|
||||
</ul>
|
||||
</div></details></section></div></main></body></html>
|
||||
1
partition/utils/split/fn.prefer_lower.html
Normal file
1
partition/utils/split/fn.prefer_lower.html
Normal file
@@ -0,0 +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="API documentation for the Rust `prefer_lower` fn in crate `partition`."><title>prefer_lower in partition::utils::split - 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-17e0aaed.css"><meta name="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="partition" data-themes="" data-resource-suffix="" data-rustdoc-version="1.96.0-nightly (ac7f9ec7d 2026-03-20)" data-channel="nightly" data-search-js="search-63369b7b.js" data-stringdex-js="stringdex-2da4960a.js" data-settings-js="settings-170eb4bf.js" ><script src="../../../static.files/storage-41dd4d93.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-5013f961.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-f7c3ffd8.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 fn"><a class="skip-main-content" href="#main-content">Skip to main content</a><!--[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="#">prefer_lower</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../partition/index.html">partition</a><span class="version">1.0.0</span></h2></div><div class="sidebar-elems"><div id="rustdoc-modnav"><h2><a href="index.html">In partition::<wbr>utils::<wbr>split</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" tabindex="-1"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../index.html">partition</a>::<wbr><a href="../index.html">utils</a>::<wbr><a href="index.html">split</a></div><h1>Function <span class="fn">prefer_<wbr>lower</span> <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/partition/utils/split.rs.html#708-715">Source</a> </span></div><pre class="rust item-decl"><code>fn prefer_lower(candidate: &<a class="struct" href="struct.LowerBound.html" title="struct partition::utils::split::LowerBound">LowerBound</a>, current: &<a class="struct" href="struct.LowerBound.html" title="struct partition::utils::split::LowerBound">LowerBound</a>) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></code></pre></section></div></main></body></html>
|
||||
1
partition/utils/split/fn.prefer_upper.html
Normal file
1
partition/utils/split/fn.prefer_upper.html
Normal file
@@ -0,0 +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="API documentation for the Rust `prefer_upper` fn in crate `partition`."><title>prefer_upper in partition::utils::split - 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-17e0aaed.css"><meta name="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="partition" data-themes="" data-resource-suffix="" data-rustdoc-version="1.96.0-nightly (ac7f9ec7d 2026-03-20)" data-channel="nightly" data-search-js="search-63369b7b.js" data-stringdex-js="stringdex-2da4960a.js" data-settings-js="settings-170eb4bf.js" ><script src="../../../static.files/storage-41dd4d93.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-5013f961.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-f7c3ffd8.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 fn"><a class="skip-main-content" href="#main-content">Skip to main content</a><!--[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="#">prefer_upper</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../partition/index.html">partition</a><span class="version">1.0.0</span></h2></div><div class="sidebar-elems"><div id="rustdoc-modnav"><h2><a href="index.html">In partition::<wbr>utils::<wbr>split</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" tabindex="-1"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../index.html">partition</a>::<wbr><a href="../index.html">utils</a>::<wbr><a href="index.html">split</a></div><h1>Function <span class="fn">prefer_<wbr>upper</span> <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/partition/utils/split.rs.html#699-706">Source</a> </span></div><pre class="rust item-decl"><code>fn prefer_upper(candidate: &<a class="struct" href="struct.UpperBound.html" title="struct partition::utils::split::UpperBound">UpperBound</a>, current: &<a class="struct" href="struct.UpperBound.html" title="struct partition::utils::split::UpperBound">UpperBound</a>) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></code></pre></section></div></main></body></html>
|
||||
5
partition/utils/split/fn.push_unique_expr.html
Normal file
5
partition/utils/split/fn.push_unique_expr.html
Normal file
@@ -0,0 +1,5 @@
|
||||
<!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 `push_unique_expr` fn in crate `partition`."><title>push_unique_expr in partition::utils::split - 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-17e0aaed.css"><meta name="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="partition" data-themes="" data-resource-suffix="" data-rustdoc-version="1.96.0-nightly (ac7f9ec7d 2026-03-20)" data-channel="nightly" data-search-js="search-63369b7b.js" data-stringdex-js="stringdex-2da4960a.js" data-settings-js="settings-170eb4bf.js" ><script src="../../../static.files/storage-41dd4d93.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-5013f961.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-f7c3ffd8.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 fn"><a class="skip-main-content" href="#main-content">Skip to main content</a><!--[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="#">push_unique_expr</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../partition/index.html">partition</a><span class="version">1.0.0</span></h2></div><div class="sidebar-elems"><div id="rustdoc-modnav"><h2><a href="index.html">In partition::<wbr>utils::<wbr>split</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" tabindex="-1"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../index.html">partition</a>::<wbr><a href="../index.html">utils</a>::<wbr><a href="index.html">split</a></div><h1>Function <span class="fn">push_<wbr>unique_<wbr>expr</span> <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/partition/utils/split.rs.html#658-663">Source</a> </span></div><pre class="rust item-decl"><code>fn push_unique_expr(
|
||||
out: &mut <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="../../expr/struct.PartitionExpr.html" title="struct partition::expr::PartitionExpr">PartitionExpr</a>>,
|
||||
seen: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/std/collections/hash/set/struct.HashSet.html" title="struct std::collections::hash::set::HashSet">HashSet</a><<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>>,
|
||||
expr: <a class="struct" href="../../expr/struct.PartitionExpr.html" title="struct partition::expr::PartitionExpr">PartitionExpr</a>,
|
||||
)</code></pre></section></div></main></body></html>
|
||||
24
partition/utils/split/fn.simplify_and_bounds.html
Normal file
24
partition/utils/split/fn.simplify_and_bounds.html
Normal file
@@ -0,0 +1,24 @@
|
||||
<!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="Simplifies conjunction-only range predicates by keeping the tightest bounds per column."><title>simplify_and_bounds in partition::utils::split - 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-17e0aaed.css"><meta name="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="partition" data-themes="" data-resource-suffix="" data-rustdoc-version="1.96.0-nightly (ac7f9ec7d 2026-03-20)" data-channel="nightly" data-search-js="search-63369b7b.js" data-stringdex-js="stringdex-2da4960a.js" data-settings-js="settings-170eb4bf.js" ><script src="../../../static.files/storage-41dd4d93.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-5013f961.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-f7c3ffd8.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 fn"><a class="skip-main-content" href="#main-content">Skip to main content</a><!--[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="#">simplify_and_bounds</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../partition/index.html">partition</a><span class="version">1.0.0</span></h2></div><div class="sidebar-elems"><div id="rustdoc-modnav"><h2><a href="index.html">In partition::<wbr>utils::<wbr>split</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" tabindex="-1"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../index.html">partition</a>::<wbr><a href="../index.html">utils</a>::<wbr><a href="index.html">split</a></div><h1>Function <span class="fn">simplify_<wbr>and_<wbr>bounds</span> <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/partition/utils/split.rs.html#469-507">Source</a> </span></div><pre class="rust item-decl"><code>fn simplify_and_bounds(expr: <a class="struct" href="../../expr/struct.PartitionExpr.html" title="struct partition::expr::PartitionExpr">PartitionExpr</a>) -> <a class="struct" href="../../expr/struct.PartitionExpr.html" title="struct partition::expr::PartitionExpr">PartitionExpr</a></code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Simplifies conjunction-only range predicates by keeping the tightest bounds per column.</p>
|
||||
<p>This pass is intentionally conservative and only runs when the whole expression
|
||||
can be flattened into <code>atom1 AND atom2 AND ...</code> without any <code>OR</code> node.</p>
|
||||
<p>Behavior:</p>
|
||||
<ul>
|
||||
<li>For each column, collect all lower-bound predicates (<code>></code> / <code>>=</code>) and keep the
|
||||
tightest one.</li>
|
||||
<li>For each column, collect all upper-bound predicates (<code><</code> / <code><=</code>) and keep the
|
||||
tightest one.</li>
|
||||
<li>Non-range predicates (for example <code>=</code> / <code>!=</code>) are preserved as-is.</li>
|
||||
<li>If the expression contains <code>OR</code>, this function returns the original expression.</li>
|
||||
</ul>
|
||||
<p>Tightness rules:</p>
|
||||
<ul>
|
||||
<li>Upper bound: smaller value is tighter; if equal value, exclusive (<code><</code>) is tighter.</li>
|
||||
<li>Lower bound: larger value is tighter; if equal value, exclusive (<code>></code>) is tighter.</li>
|
||||
</ul>
|
||||
<p>Examples:</p>
|
||||
<ul>
|
||||
<li><code>a <= 10 AND a < 10</code> => <code>a < 10</code></li>
|
||||
<li><code>a >= 10 AND a > 10</code> => <code>a > 10</code></li>
|
||||
<li><code>a < 10 AND a < 5</code> => <code>a < 5</code></li>
|
||||
</ul>
|
||||
</div></details></section></div></main></body></html>
|
||||
17
partition/utils/split/fn.split_partition_expr.html
Normal file
17
partition/utils/split/fn.split_partition_expr.html
Normal file
@@ -0,0 +1,17 @@
|
||||
<!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="Splits one partition expression with a split predicate."><title>split_partition_expr in partition::utils::split - 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-17e0aaed.css"><meta name="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="partition" data-themes="" data-resource-suffix="" data-rustdoc-version="1.96.0-nightly (ac7f9ec7d 2026-03-20)" data-channel="nightly" data-search-js="search-63369b7b.js" data-stringdex-js="stringdex-2da4960a.js" data-settings-js="settings-170eb4bf.js" ><script src="../../../static.files/storage-41dd4d93.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-5013f961.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-f7c3ffd8.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 fn"><a class="skip-main-content" href="#main-content">Skip to main content</a><!--[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="#">split_partition_expr</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../partition/index.html">partition</a><span class="version">1.0.0</span></h2></div><div class="sidebar-elems"><div id="rustdoc-modnav"><h2><a href="index.html">In partition::<wbr>utils::<wbr>split</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" tabindex="-1"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../index.html">partition</a>::<wbr><a href="../index.html">utils</a>::<wbr><a href="index.html">split</a></div><h1>Function <span class="fn">split_<wbr>partition_<wbr>expr</span> <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/partition/utils/split.rs.html#55-94">Source</a> </span></div><pre class="rust item-decl"><code>pub fn split_partition_expr(
|
||||
base_expr: <a class="struct" href="../../expr/struct.PartitionExpr.html" title="struct partition::expr::PartitionExpr">PartitionExpr</a>,
|
||||
split_expr: <a class="struct" href="../../expr/struct.PartitionExpr.html" title="struct partition::expr::PartitionExpr">PartitionExpr</a>,
|
||||
) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><(<a class="struct" href="../../expr/struct.PartitionExpr.html" title="struct partition::expr::PartitionExpr">PartitionExpr</a>, <a class="struct" href="../../expr/struct.PartitionExpr.html" title="struct partition::expr::PartitionExpr">PartitionExpr</a>), <a class="enum" href="enum.ExprSplitDegradeReason.html" title="enum partition::utils::split::ExprSplitDegradeReason">ExprSplitDegradeReason</a>></code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Splits one partition expression with a split predicate.</p>
|
||||
<p>Returns <code>(left, right)</code> on success, where:</p>
|
||||
<ul>
|
||||
<li><code>left = R AND S</code></li>
|
||||
<li><code>right = R AND NOT(S)</code></li>
|
||||
</ul>
|
||||
<p>Supported shape:</p>
|
||||
<ul>
|
||||
<li><code>split_expr</code> must be a single atomic range predicate (<code><</code>, <code><=</code>, <code>></code>, <code>>=</code>).</li>
|
||||
<li><code>base_expr</code> must be a pure <code>AND</code> tree of atomic range predicates, possibly
|
||||
across unrelated columns.</li>
|
||||
</ul>
|
||||
<p>Returns <a href="enum.ExprSplitDegradeReason.html" title="enum partition::utils::split::ExprSplitDegradeReason"><code>ExprSplitDegradeReason</code></a> when this cannot safely process the shape/type.</p>
|
||||
</div></details></section></div></main></body></html>
|
||||
5
partition/utils/split/fn.update_lower_bound.html
Normal file
5
partition/utils/split/fn.update_lower_bound.html
Normal file
@@ -0,0 +1,5 @@
|
||||
<!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 `update_lower_bound` fn in crate `partition`."><title>update_lower_bound in partition::utils::split - 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-17e0aaed.css"><meta name="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="partition" data-themes="" data-resource-suffix="" data-rustdoc-version="1.96.0-nightly (ac7f9ec7d 2026-03-20)" data-channel="nightly" data-search-js="search-63369b7b.js" data-stringdex-js="stringdex-2da4960a.js" data-settings-js="settings-170eb4bf.js" ><script src="../../../static.files/storage-41dd4d93.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-5013f961.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-f7c3ffd8.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 fn"><a class="skip-main-content" href="#main-content">Skip to main content</a><!--[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="#">update_lower_bound</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../partition/index.html">partition</a><span class="version">1.0.0</span></h2></div><div class="sidebar-elems"><div id="rustdoc-modnav"><h2><a href="index.html">In partition::<wbr>utils::<wbr>split</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" tabindex="-1"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../index.html">partition</a>::<wbr><a href="../index.html">utils</a>::<wbr><a href="index.html">split</a></div><h1>Function <span class="fn">update_<wbr>lower_<wbr>bound</span> <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/partition/utils/split.rs.html#682-697">Source</a> </span></div><pre class="rust item-decl"><code>fn update_lower_bound(
|
||||
lowers: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/collections/btree/map/struct.BTreeMap.html" title="struct alloc::collections::btree::map::BTreeMap">BTreeMap</a><<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>, <a class="struct" href="struct.LowerBound.html" title="struct partition::utils::split::LowerBound">LowerBound</a>>,
|
||||
col: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>,
|
||||
candidate: <a class="struct" href="struct.LowerBound.html" title="struct partition::utils::split::LowerBound">LowerBound</a>,
|
||||
)</code></pre></section></div></main></body></html>
|
||||
5
partition/utils/split/fn.update_upper_bound.html
Normal file
5
partition/utils/split/fn.update_upper_bound.html
Normal file
@@ -0,0 +1,5 @@
|
||||
<!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 `update_upper_bound` fn in crate `partition`."><title>update_upper_bound in partition::utils::split - 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-17e0aaed.css"><meta name="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="partition" data-themes="" data-resource-suffix="" data-rustdoc-version="1.96.0-nightly (ac7f9ec7d 2026-03-20)" data-channel="nightly" data-search-js="search-63369b7b.js" data-stringdex-js="stringdex-2da4960a.js" data-settings-js="settings-170eb4bf.js" ><script src="../../../static.files/storage-41dd4d93.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-5013f961.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-f7c3ffd8.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 fn"><a class="skip-main-content" href="#main-content">Skip to main content</a><!--[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="#">update_upper_bound</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../partition/index.html">partition</a><span class="version">1.0.0</span></h2></div><div class="sidebar-elems"><div id="rustdoc-modnav"><h2><a href="index.html">In partition::<wbr>utils::<wbr>split</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" tabindex="-1"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../index.html">partition</a>::<wbr><a href="../index.html">utils</a>::<wbr><a href="index.html">split</a></div><h1>Function <span class="fn">update_<wbr>upper_<wbr>bound</span> <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/partition/utils/split.rs.html#665-680">Source</a> </span></div><pre class="rust item-decl"><code>fn update_upper_bound(
|
||||
uppers: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/collections/btree/map/struct.BTreeMap.html" title="struct alloc::collections::btree::map::BTreeMap">BTreeMap</a><<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>, <a class="struct" href="struct.UpperBound.html" title="struct partition::utils::split::UpperBound">UpperBound</a>>,
|
||||
col: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>,
|
||||
candidate: <a class="struct" href="struct.UpperBound.html" title="struct partition::utils::split::UpperBound">UpperBound</a>,
|
||||
)</code></pre></section></div></main></body></html>
|
||||
1
partition/utils/split/fn.validate_atomic.html
Normal file
1
partition/utils/split/fn.validate_atomic.html
Normal file
@@ -0,0 +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="API documentation for the Rust `validate_atomic` fn in crate `partition`."><title>validate_atomic in partition::utils::split - 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-17e0aaed.css"><meta name="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="partition" data-themes="" data-resource-suffix="" data-rustdoc-version="1.96.0-nightly (ac7f9ec7d 2026-03-20)" data-channel="nightly" data-search-js="search-63369b7b.js" data-stringdex-js="stringdex-2da4960a.js" data-settings-js="settings-170eb4bf.js" ><script src="../../../static.files/storage-41dd4d93.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-5013f961.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-f7c3ffd8.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 fn"><a class="skip-main-content" href="#main-content">Skip to main content</a><!--[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="#">validate_atomic</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../partition/index.html">partition</a><span class="version">1.0.0</span></h2></div><div class="sidebar-elems"><div id="rustdoc-modnav"><h2><a href="index.html">In partition::<wbr>utils::<wbr>split</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" tabindex="-1"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../index.html">partition</a>::<wbr><a href="../index.html">utils</a>::<wbr><a href="index.html">split</a></div><h1>Function <span class="fn">validate_<wbr>atomic</span> <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/partition/utils/split.rs.html#341-356">Source</a> </span></div><pre class="rust item-decl"><code>fn validate_atomic(expr: &<a class="struct" href="../../expr/struct.PartitionExpr.html" title="struct partition::expr::PartitionExpr">PartitionExpr</a>) -> <a class="type" href="../../error/type.Result.html" title="type partition::error::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>></code></pre></section></div></main></body></html>
|
||||
8
partition/utils/split/fn.validate_base_expr_shape.html
Normal file
8
partition/utils/split/fn.validate_base_expr_shape.html
Normal file
@@ -0,0 +1,8 @@
|
||||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Validates that `base_expr` stays within the range-only split contract."><title>validate_base_expr_shape in partition::utils::split - 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-17e0aaed.css"><meta name="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="partition" data-themes="" data-resource-suffix="" data-rustdoc-version="1.96.0-nightly (ac7f9ec7d 2026-03-20)" data-channel="nightly" data-search-js="search-63369b7b.js" data-stringdex-js="stringdex-2da4960a.js" data-settings-js="settings-170eb4bf.js" ><script src="../../../static.files/storage-41dd4d93.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-5013f961.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-f7c3ffd8.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 fn"><a class="skip-main-content" href="#main-content">Skip to main content</a><!--[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="#">validate_base_expr_shape</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../partition/index.html">partition</a><span class="version">1.0.0</span></h2></div><div class="sidebar-elems"><div id="rustdoc-modnav"><h2><a href="index.html">In partition::<wbr>utils::<wbr>split</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" tabindex="-1"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../index.html">partition</a>::<wbr><a href="../index.html">utils</a>::<wbr><a href="index.html">split</a></div><h1>Function <span class="fn">validate_<wbr>base_<wbr>expr_<wbr>shape</span> <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/partition/utils/split.rs.html#364-373">Source</a> </span></div><pre class="rust item-decl"><code>fn validate_base_expr_shape(expr: &<a class="struct" href="../../expr/struct.PartitionExpr.html" title="struct partition::expr::PartitionExpr">PartitionExpr</a>) -> <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>Validates that <code>base_expr</code> stays within the range-only split contract.</p>
|
||||
<p>Scope and intent:</p>
|
||||
<ul>
|
||||
<li>The split utility only handles interval-style partition predicates.</li>
|
||||
<li><code>base_expr</code> may mention multiple columns, but it must remain a pure <code>AND</code>
|
||||
tree of atomic range predicates.</li>
|
||||
</ul>
|
||||
</div></details></section></div></main></body></html>
|
||||
4
partition/utils/split/fn.validate_split_expr_shape.html
Normal file
4
partition/utils/split/fn.validate_split_expr_shape.html
Normal file
@@ -0,0 +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="Validates that `split_expr` is a single atomic range predicate."><title>validate_split_expr_shape in partition::utils::split - 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-17e0aaed.css"><meta name="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="partition" data-themes="" data-resource-suffix="" data-rustdoc-version="1.96.0-nightly (ac7f9ec7d 2026-03-20)" data-channel="nightly" data-search-js="search-63369b7b.js" data-stringdex-js="stringdex-2da4960a.js" data-settings-js="settings-170eb4bf.js" ><script src="../../../static.files/storage-41dd4d93.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-5013f961.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-f7c3ffd8.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 fn"><a class="skip-main-content" href="#main-content">Skip to main content</a><!--[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="#">validate_split_expr_shape</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../partition/index.html">partition</a><span class="version">1.0.0</span></h2></div><div class="sidebar-elems"><div id="rustdoc-modnav"><h2><a href="index.html">In partition::<wbr>utils::<wbr>split</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" tabindex="-1"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../index.html">partition</a>::<wbr><a href="../index.html">utils</a>::<wbr><a href="index.html">split</a></div><h1>Function <span class="fn">validate_<wbr>split_<wbr>expr_<wbr>shape</span> <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/partition/utils/split.rs.html#379-381">Source</a> </span></div><pre class="rust item-decl"><code>fn validate_split_expr_shape(expr: &<a class="struct" href="../../expr/struct.PartitionExpr.html" title="struct partition::expr::PartitionExpr">PartitionExpr</a>) -> <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>Validates that <code>split_expr</code> is a single atomic range predicate.</p>
|
||||
<p>This restriction keeps <code>NOT(split_expr)</code> in the same range-only subset so the
|
||||
resulting left/right branches stay within the supported contract.</p>
|
||||
</div></details></section></div></main></body></html>
|
||||
1
partition/utils/split/fn.validate_supported_expr.html
Normal file
1
partition/utils/split/fn.validate_supported_expr.html
Normal file
@@ -0,0 +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="API documentation for the Rust `validate_supported_expr` fn in crate `partition`."><title>validate_supported_expr in partition::utils::split - 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-17e0aaed.css"><meta name="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="partition" data-themes="" data-resource-suffix="" data-rustdoc-version="1.96.0-nightly (ac7f9ec7d 2026-03-20)" data-channel="nightly" data-search-js="search-63369b7b.js" data-stringdex-js="stringdex-2da4960a.js" data-settings-js="settings-170eb4bf.js" ><script src="../../../static.files/storage-41dd4d93.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-5013f961.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-f7c3ffd8.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 fn"><a class="skip-main-content" href="#main-content">Skip to main content</a><!--[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="#">validate_supported_expr</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../partition/index.html">partition</a><span class="version">1.0.0</span></h2></div><div class="sidebar-elems"><div id="rustdoc-modnav"><h2><a href="index.html">In partition::<wbr>utils::<wbr>split</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" tabindex="-1"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../index.html">partition</a>::<wbr><a href="../index.html">utils</a>::<wbr><a href="index.html">split</a></div><h1>Function <span class="fn">validate_<wbr>supported_<wbr>expr</span> <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/partition/utils/split.rs.html#312-339">Source</a> </span></div><pre class="rust item-decl"><code>pub fn validate_supported_expr(expr: &<a class="struct" href="../../expr/struct.PartitionExpr.html" title="struct partition::expr::PartitionExpr">PartitionExpr</a>) -> <a class="type" href="../../error/type.Result.html" title="type partition::error::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>></code></pre></section></div></main></body></html>
|
||||
12
partition/utils/split/index.html
Normal file
12
partition/utils/split/index.html
Normal file
@@ -0,0 +1,12 @@
|
||||
<!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="Expression split utilities for partition rules."><title>partition::utils::split - 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-17e0aaed.css"><meta name="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="partition" data-themes="" data-resource-suffix="" data-rustdoc-version="1.96.0-nightly (ac7f9ec7d 2026-03-20)" data-channel="nightly" data-search-js="search-63369b7b.js" data-stringdex-js="stringdex-2da4960a.js" data-settings-js="settings-170eb4bf.js" ><script src="../../../static.files/storage-41dd4d93.js"></script><script defer src="../sidebar-items.js"></script><script defer src="../../../static.files/main-5013f961.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-f7c3ffd8.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 mod"><a class="skip-main-content" href="#main-content">Skip to main content</a><!--[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="#">Module split</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../partition/index.html">partition</a><span class="version">1.0.0</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">Module split</a></h2><h3><a href="#structs">Module Items</a></h3><ul class="block"><li><a href="#structs" title="Structs">Structs</a></li><li><a href="#enums" title="Enums">Enums</a></li><li><a href="#functions" title="Functions">Functions</a></li></ul></section><div id="rustdoc-modnav"><h2><a href="../index.html">In partition::<wbr>utils</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" tabindex="-1"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../index.html">partition</a>::<wbr><a href="../index.html">utils</a></div><h1>Module <span>split</span> <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/partition/utils/split.rs.html#15-1263">Source</a> </span></div><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Expression split utilities for partition rules.</p>
|
||||
<p>This module provides a conservative way to split one partition expression <code>R</code>
|
||||
by a split expression <code>S</code> into:</p>
|
||||
<ul>
|
||||
<li><code>left = R AND S</code></li>
|
||||
<li><code>right = R AND NOT(S)</code></li>
|
||||
</ul>
|
||||
<p>The implementation intentionally reuses existing partition components
|
||||
(<code>Collider</code>, <code>simplify</code>, <code>PartitionChecker</code>) and degrades to no-split when an
|
||||
unsupported shape/type is encountered.</p>
|
||||
</div></details><h2 id="structs" class="section-header">Structs<a href="#structs" class="anchor">§</a></h2><dl class="item-table"><dt><a class="struct" href="struct.CollectedConjunction.html" title="struct partition::utils::split::CollectedConjunction">Collected<wbr>Conjunction</a><span title="Restricted Visibility"> 🔒</span> </dt><dt><a class="struct" href="struct.LowerBound.html" title="struct partition::utils::split::LowerBound">Lower<wbr>Bound</a><span title="Restricted Visibility"> 🔒</span> </dt><dt><a class="struct" href="struct.UpperBound.html" title="struct partition::utils::split::UpperBound">Upper<wbr>Bound</a><span title="Restricted Visibility"> 🔒</span> </dt></dl><h2 id="enums" class="section-header">Enums<a href="#enums" class="anchor">§</a></h2><dl class="item-table"><dt><a class="enum" href="enum.ExprSplitDegradeReason.html" title="enum partition::utils::split::ExprSplitDegradeReason">Expr<wbr>Split<wbr>Degrade<wbr>Reason</a></dt></dl><h2 id="functions" class="section-header">Functions<a href="#functions" class="anchor">§</a></h2><dl class="item-table"><dt><a class="fn" href="fn.atom_col_op_val.html" title="fn partition::utils::split::atom_col_op_val">atom_<wbr>col_<wbr>op_<wbr>val</a><span title="Restricted Visibility"> 🔒</span> </dt><dd>Extracts <code>(column, op, value)</code> from a canonicalized atomic expression.</dd><dt><a class="fn" href="fn.collect_and_atoms.html" title="fn partition::utils::split::collect_and_atoms">collect_<wbr>and_<wbr>atoms</a><span title="Restricted Visibility"> 🔒</span> </dt><dd>Flattens an expression into atomic terms when it is a pure conjunction tree.</dd><dt><a class="fn" href="fn.collect_conjunction_bounds.html" title="fn partition::utils::split::collect_conjunction_bounds">collect_<wbr>conjunction_<wbr>bounds</a><span title="Restricted Visibility"> 🔒</span> </dt><dd>Collects per-column bounds and passthrough atoms from a pure <code>AND</code> tree.</dd><dt><a class="fn" href="fn.discrete_value_index.html" title="fn partition::utils::split::discrete_value_index">discrete_<wbr>value_<wbr>index</a><span title="Restricted Visibility"> 🔒</span> </dt><dt><a class="fn" href="fn.fold_and_exprs.html" title="fn partition::utils::split::fold_and_exprs">fold_<wbr>and_<wbr>exprs</a><span title="Restricted Visibility"> 🔒</span> </dt><dd>Folds a list of expressions into a left-associated AND tree.
|
||||
Returns <code>None</code> if the input list is empty.</dd><dt><a class="fn" href="fn.is_atomic_range_expr.html" title="fn partition::utils::split::is_atomic_range_expr">is_<wbr>atomic_<wbr>range_<wbr>expr</a><span title="Restricted Visibility"> 🔒</span> </dt><dd>Returns whether <code>expr</code> is an atomic <code>column op value</code> range predicate.</dd><dt><a class="fn" href="fn.is_domain_max_value.html" title="fn partition::utils::split::is_domain_max_value">is_<wbr>domain_<wbr>max_<wbr>value</a><span title="Restricted Visibility"> 🔒</span> </dt><dt><a class="fn" href="fn.is_empty_and_conjunction.html" title="fn partition::utils::split::is_empty_and_conjunction">is_<wbr>empty_<wbr>and_<wbr>conjunction</a><span title="Restricted Visibility"> 🔒</span> </dt><dd>Detects whether a pure conjunction expression is definitely unsatisfiable.</dd><dt><a class="fn" href="fn.is_infinite_value.html" title="fn partition::utils::split::is_infinite_value">is_<wbr>infinite_<wbr>value</a><span title="Restricted Visibility"> 🔒</span> </dt><dt><a class="fn" href="fn.is_nan_value.html" title="fn partition::utils::split::is_nan_value">is_<wbr>nan_<wbr>value</a><span title="Restricted Visibility"> 🔒</span> </dt><dt><a class="fn" href="fn.is_strictly_greater_than_domain_max.html" title="fn partition::utils::split::is_strictly_greater_than_domain_max">is_<wbr>strictly_<wbr>greater_<wbr>than_<wbr>domain_<wbr>max</a><span title="Restricted Visibility"> 🔒</span> </dt><dt><a class="fn" href="fn.is_supported_value.html" title="fn partition::utils::split::is_supported_value">is_<wbr>supported_<wbr>value</a><span title="Restricted Visibility"> 🔒</span> </dt><dt><a class="fn" href="fn.negate_split_expr.html" title="fn partition::utils::split::negate_split_expr">negate_<wbr>split_<wbr>expr</a></dt><dd>Rewrites <code>NOT(expr)</code> into an equivalent <code>PartitionExpr</code> without introducing a unary NOT node.</dd><dt><a class="fn" href="fn.prefer_lower.html" title="fn partition::utils::split::prefer_lower">prefer_<wbr>lower</a><span title="Restricted Visibility"> 🔒</span> </dt><dt><a class="fn" href="fn.prefer_upper.html" title="fn partition::utils::split::prefer_upper">prefer_<wbr>upper</a><span title="Restricted Visibility"> 🔒</span> </dt><dt><a class="fn" href="fn.push_unique_expr.html" title="fn partition::utils::split::push_unique_expr">push_<wbr>unique_<wbr>expr</a><span title="Restricted Visibility"> 🔒</span> </dt><dt><a class="fn" href="fn.simplify_and_bounds.html" title="fn partition::utils::split::simplify_and_bounds">simplify_<wbr>and_<wbr>bounds</a><span title="Restricted Visibility"> 🔒</span> </dt><dd>Simplifies conjunction-only range predicates by keeping the tightest bounds per column.</dd><dt><a class="fn" href="fn.split_partition_expr.html" title="fn partition::utils::split::split_partition_expr">split_<wbr>partition_<wbr>expr</a></dt><dd>Splits one partition expression with a split predicate.</dd><dt><a class="fn" href="fn.update_lower_bound.html" title="fn partition::utils::split::update_lower_bound">update_<wbr>lower_<wbr>bound</a><span title="Restricted Visibility"> 🔒</span> </dt><dt><a class="fn" href="fn.update_upper_bound.html" title="fn partition::utils::split::update_upper_bound">update_<wbr>upper_<wbr>bound</a><span title="Restricted Visibility"> 🔒</span> </dt><dt><a class="fn" href="fn.validate_atomic.html" title="fn partition::utils::split::validate_atomic">validate_<wbr>atomic</a><span title="Restricted Visibility"> 🔒</span> </dt><dt><a class="fn" href="fn.validate_base_expr_shape.html" title="fn partition::utils::split::validate_base_expr_shape">validate_<wbr>base_<wbr>expr_<wbr>shape</a><span title="Restricted Visibility"> 🔒</span> </dt><dd>Validates that <code>base_expr</code> stays within the range-only split contract.</dd><dt><a class="fn" href="fn.validate_split_expr_shape.html" title="fn partition::utils::split::validate_split_expr_shape">validate_<wbr>split_<wbr>expr_<wbr>shape</a><span title="Restricted Visibility"> 🔒</span> </dt><dd>Validates that <code>split_expr</code> is a single atomic range predicate.</dd><dt><a class="fn" href="fn.validate_supported_expr.html" title="fn partition::utils::split::validate_supported_expr">validate_<wbr>supported_<wbr>expr</a></dt></dl></section></div></main></body></html>
|
||||
1
partition/utils/split/sidebar-items.js
Normal file
1
partition/utils/split/sidebar-items.js
Normal file
@@ -0,0 +1 @@
|
||||
window.SIDEBAR_ITEMS = {"enum":["ExprSplitDegradeReason"],"fn":["atom_col_op_val","collect_and_atoms","collect_conjunction_bounds","discrete_value_index","fold_and_exprs","is_atomic_range_expr","is_domain_max_value","is_empty_and_conjunction","is_infinite_value","is_nan_value","is_strictly_greater_than_domain_max","is_supported_value","negate_split_expr","prefer_lower","prefer_upper","push_unique_expr","simplify_and_bounds","split_partition_expr","update_lower_bound","update_upper_bound","validate_atomic","validate_base_expr_shape","validate_split_expr_shape","validate_supported_expr"],"struct":["CollectedConjunction","LowerBound","UpperBound"]};
|
||||
194
partition/utils/split/struct.CollectedConjunction.html
Normal file
194
partition/utils/split/struct.CollectedConjunction.html
Normal file
File diff suppressed because one or more lines are too long
198
partition/utils/split/struct.LowerBound.html
Normal file
198
partition/utils/split/struct.LowerBound.html
Normal file
File diff suppressed because one or more lines are too long
198
partition/utils/split/struct.UpperBound.html
Normal file
198
partition/utils/split/struct.UpperBound.html
Normal file
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user