mirror of
https://github.com/GreptimeTeam/greptimedb.git
synced 2026-05-19 14:30:43 +00:00
Deploying to gh-pages from @ GreptimeTeam/greptimedb@0572a680af 🚀
This commit is contained in:
@@ -0,0 +1,10 @@
|
||||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="first see the aggr node in expr as it could be nested aggr like alias(aggr(sort)) if contained aggr expr have a order by, and the aggr name match the regex then we need to fix the ordering field of the state udaf to be the same as the aggr expr"><title>rewrite_expr in common_function::aggrs::aggr_wrapper::fix_order - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../../../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../../../static.files/rustdoc-e56847b5.css"><meta name="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="common_function" data-themes="" data-resource-suffix="" data-rustdoc-version="1.92.0-nightly (fa3155a64 2025-09-30)" data-channel="nightly" data-search-js="search-e256b49e.js" data-stringdex-js="stringdex-828709d0.js" data-settings-js="settings-c38705f0.js" ><script src="../../../../static.files/storage-e2aeef58.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../../static.files/main-ce535bd0.js"></script><noscript><link rel="stylesheet" href="../../../../static.files/noscript-263c88ec.css"></noscript><link rel="alternate icon" type="image/png" href="../../../../static.files/favicon-32x32-eab170b8.png"><link rel="icon" type="image/svg+xml" href="../../../../static.files/favicon-044be391.svg"></head><body class="rustdoc fn"><!--[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="#">rewrite_expr</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../../common_function/index.html">common_<wbr>function</a><span class="version">1.0.0-rc.2</span></h2></div><div class="sidebar-elems"><div id="rustdoc-modnav"><h2><a href="index.html">In common_<wbr>function::<wbr>aggrs::<wbr>aggr_<wbr>wrapper::<wbr>fix_<wbr>order</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../../index.html">common_function</a>::<wbr><a href="../../index.html">aggrs</a>::<wbr><a href="../index.html">aggr_wrapper</a>::<wbr><a href="index.html">fix_order</a></div><h1>Function <span class="fn">rewrite_<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/common_function/aggrs/aggr_wrapper/fix_order.rs.html#135-189">Source</a> </span></div><pre class="rust item-decl"><code>fn rewrite_expr(
|
||||
expr: Expr,
|
||||
aggregate_input: &<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/sync/struct.Arc.html" title="struct alloc::sync::Arc">Arc</a><LogicalPlan>,
|
||||
is_fix: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>,
|
||||
) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><Transformed<Expr>, DataFusionError></code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>first see the aggr node in expr
|
||||
as it could be nested aggr like alias(aggr(sort))
|
||||
if contained aggr expr have a order by, and the aggr name match the regex
|
||||
then we need to fix the ordering field of the state udaf
|
||||
to be the same as the aggr expr</p>
|
||||
</div></details></section></div></main></body></html>
|
||||
7
common_function/aggrs/aggr_wrapper/fix_order/index.html
Normal file
7
common_function/aggrs/aggr_wrapper/fix_order/index.html
Normal file
@@ -0,0 +1,7 @@
|
||||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `fix_order` mod in crate `common_function`."><title>common_function::aggrs::aggr_wrapper::fix_order - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../../../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../../../static.files/rustdoc-e56847b5.css"><meta name="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="common_function" data-themes="" data-resource-suffix="" data-rustdoc-version="1.92.0-nightly (fa3155a64 2025-09-30)" data-channel="nightly" data-search-js="search-e256b49e.js" data-stringdex-js="stringdex-828709d0.js" data-settings-js="settings-c38705f0.js" ><script src="../../../../static.files/storage-e2aeef58.js"></script><script defer src="../sidebar-items.js"></script><script defer src="../../../../static.files/main-ce535bd0.js"></script><noscript><link rel="stylesheet" href="../../../../static.files/noscript-263c88ec.css"></noscript><link rel="alternate icon" type="image/png" href="../../../../static.files/favicon-32x32-eab170b8.png"><link rel="icon" type="image/svg+xml" href="../../../../static.files/favicon-044be391.svg"></head><body class="rustdoc mod"><!--[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 fix_order</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../../common_function/index.html">common_<wbr>function</a><span class="version">1.0.0-rc.2</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">Module fix_<wbr>order</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="#functions" title="Functions">Functions</a></li></ul></section><div id="rustdoc-modnav"><h2><a href="../index.html">In common_<wbr>function::<wbr>aggrs::<wbr>aggr_<wbr>wrapper</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../../index.html">common_function</a>::<wbr><a href="../../index.html">aggrs</a>::<wbr><a href="../index.html">aggr_wrapper</a></div><h1>Module <span>fix_<wbr>order</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/common_function/aggrs/aggr_wrapper/fix_order.rs.html#15-189">Source</a> </span></div><h2 id="structs" class="section-header">Structs<a href="#structs" class="anchor">§</a></h2><dl class="item-table"><dt><a class="struct" href="struct.FixOrderingRewriter.html" title="struct common_function::aggrs::aggr_wrapper::fix_order::FixOrderingRewriter">FixOrdering<wbr>Rewriter</a><span title="Restricted Visibility"> 🔒</span> </dt><dt><a class="struct" href="struct.FixStateUdafOrderingAnalyzer.html" title="struct common_function::aggrs::aggr_wrapper::fix_order::FixStateUdafOrderingAnalyzer">FixState<wbr>Udaf<wbr>Ordering<wbr>Analyzer</a></dt><dd>Traverse the plan, found all <code>__<aggr_name>_state</code> and fix their ordering fields
|
||||
if their input aggr is with order by, this is currently only useful for <code>first_value</code> and <code>last_value</code> udaf</dd><dt><a class="struct" href="struct.UnFixStateUdafOrderingAnalyzer.html" title="struct common_function::aggrs::aggr_wrapper::fix_order::UnFixStateUdafOrderingAnalyzer">UnFix<wbr>State<wbr>Udaf<wbr>Ordering<wbr>Analyzer</a></dt><dd>Traverse the plan, found all <code>__<aggr_name>_state</code> and remove their ordering fields
|
||||
this is currently only useful for <code>first_value</code> and <code>last_value</code> udaf when need to encode to substrait</dd></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.rewrite_expr.html" title="fn common_function::aggrs::aggr_wrapper::fix_order::rewrite_expr">rewrite_<wbr>expr</a><span title="Restricted Visibility"> 🔒</span> </dt><dd>first see the aggr node in expr
|
||||
as it could be nested aggr like alias(aggr(sort))
|
||||
if contained aggr expr have a order by, and the aggr name match the regex
|
||||
then we need to fix the ordering field of the state udaf
|
||||
to be the same as the aggr expr</dd></dl></section></div></main></body></html>
|
||||
@@ -0,0 +1 @@
|
||||
window.SIDEBAR_ITEMS = {"fn":["rewrite_expr"],"struct":["FixOrderingRewriter","FixStateUdafOrderingAnalyzer","UnFixStateUdafOrderingAnalyzer"]};
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -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="Returns the name of the merge function for the given aggregate function name. The merge function is used to merge the states of the state functions. The merge function’s name is in the format `__<aggr_name>_merge"><title>aggr_merge_func_name in common_function::aggrs::aggr_wrapper - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../../static.files/rustdoc-e56847b5.css"><meta name="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="common_function" data-themes="" data-resource-suffix="" data-rustdoc-version="1.92.0-nightly (fa3155a64 2025-09-30)" data-channel="nightly" data-search-js="search-e256b49e.js" data-stringdex-js="stringdex-828709d0.js" data-settings-js="settings-c38705f0.js" ><script src="../../../static.files/storage-e2aeef58.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-ce535bd0.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-263c88ec.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-eab170b8.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-044be391.svg"></head><body class="rustdoc fn"><!--[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="#">aggr_merge_func_name</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../common_function/index.html">common_<wbr>function</a><span class="version">1.0.0-rc.2</span></h2></div><div class="sidebar-elems"><div id="rustdoc-modnav"><h2><a href="index.html">In common_<wbr>function::<wbr>aggrs::<wbr>aggr_<wbr>wrapper</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../index.html">common_function</a>::<wbr><a href="../index.html">aggrs</a>::<wbr><a href="index.html">aggr_wrapper</a></div><h1>Function <span class="fn">aggr_<wbr>merge_<wbr>func_<wbr>name</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/common_function/aggrs/aggr_wrapper.rs.html#64-66">Source</a> </span></div><pre class="rust item-decl"><code>pub fn aggr_merge_func_name(aggr_name: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>) -> <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a></code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Returns the name of the merge function for the given aggregate function name.
|
||||
The merge function is used to merge the states of the state functions.
|
||||
The merge function’s name is in the format `__<aggr_name>_merge</p>
|
||||
</div></details></section></div></main></body></html>
|
||||
@@ -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="Returns the name of the state function for the given aggregate function name. The state function is used to compute the state of the aggregate function. The state function’s name is in the format `__<aggr_name>_state"><title>aggr_state_func_name in common_function::aggrs::aggr_wrapper - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../../static.files/rustdoc-e56847b5.css"><meta name="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="common_function" data-themes="" data-resource-suffix="" data-rustdoc-version="1.92.0-nightly (fa3155a64 2025-09-30)" data-channel="nightly" data-search-js="search-e256b49e.js" data-stringdex-js="stringdex-828709d0.js" data-settings-js="settings-c38705f0.js" ><script src="../../../static.files/storage-e2aeef58.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-ce535bd0.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-263c88ec.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-eab170b8.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-044be391.svg"></head><body class="rustdoc fn"><!--[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="#">aggr_state_func_name</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../common_function/index.html">common_<wbr>function</a><span class="version">1.0.0-rc.2</span></h2></div><div class="sidebar-elems"><div id="rustdoc-modnav"><h2><a href="index.html">In common_<wbr>function::<wbr>aggrs::<wbr>aggr_<wbr>wrapper</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../index.html">common_function</a>::<wbr><a href="../index.html">aggrs</a>::<wbr><a href="index.html">aggr_wrapper</a></div><h1>Function <span class="fn">aggr_<wbr>state_<wbr>func_<wbr>name</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/common_function/aggrs/aggr_wrapper.rs.html#57-59">Source</a> </span></div><pre class="rust item-decl"><code>pub fn aggr_state_func_name(aggr_name: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>) -> <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a></code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Returns the name of the state function for the given aggregate function name.
|
||||
The state function is used to compute the state of the aggregate function.
|
||||
The state function’s name is in the format `__<aggr_name>_state</p>
|
||||
</div></details></section></div></main></body></html>
|
||||
1
common_function/aggrs/aggr_wrapper/fn.get_aggr_func.html
Normal file
1
common_function/aggrs/aggr_wrapper/fn.get_aggr_func.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 `get_aggr_func` fn in crate `common_function`."><title>get_aggr_func in common_function::aggrs::aggr_wrapper - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../../static.files/rustdoc-e56847b5.css"><meta name="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="common_function" data-themes="" data-resource-suffix="" data-rustdoc-version="1.92.0-nightly (fa3155a64 2025-09-30)" data-channel="nightly" data-search-js="search-e256b49e.js" data-stringdex-js="stringdex-828709d0.js" data-settings-js="settings-c38705f0.js" ><script src="../../../static.files/storage-e2aeef58.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-ce535bd0.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-263c88ec.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-eab170b8.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-044be391.svg"></head><body class="rustdoc fn"><!--[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="#">get_aggr_func</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../common_function/index.html">common_<wbr>function</a><span class="version">1.0.0-rc.2</span></h2></div><div class="sidebar-elems"><div id="rustdoc-modnav"><h2><a href="index.html">In common_<wbr>function::<wbr>aggrs::<wbr>aggr_<wbr>wrapper</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../index.html">common_function</a>::<wbr><a href="../index.html">aggrs</a>::<wbr><a href="index.html">aggr_wrapper</a></div><h1>Function <span class="fn">get_<wbr>aggr_<wbr>func</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/common_function/aggrs/aggr_wrapper.rs.html#89-99">Source</a> </span></div><pre class="rust item-decl"><code>pub fn get_aggr_func(expr: &Expr) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><&AggregateFunction></code></pre></section></div></main></body></html>
|
||||
@@ -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="Check if the given aggregate expression is steppable. As in if it can be split into multiple steps: i.e. on datanode first call `state(input)` then on frontend call `calc(merge(state))` to get the final result."><title>is_all_aggr_exprs_steppable in common_function::aggrs::aggr_wrapper - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../../static.files/rustdoc-e56847b5.css"><meta name="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="common_function" data-themes="" data-resource-suffix="" data-rustdoc-version="1.92.0-nightly (fa3155a64 2025-09-30)" data-channel="nightly" data-search-js="search-e256b49e.js" data-stringdex-js="stringdex-828709d0.js" data-settings-js="settings-c38705f0.js" ><script src="../../../static.files/storage-e2aeef58.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-ce535bd0.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-263c88ec.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-eab170b8.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-044be391.svg"></head><body class="rustdoc fn"><!--[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_all_aggr_exprs_steppable</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../common_function/index.html">common_<wbr>function</a><span class="version">1.0.0-rc.2</span></h2></div><div class="sidebar-elems"><div id="rustdoc-modnav"><h2><a href="index.html">In common_<wbr>function::<wbr>aggrs::<wbr>aggr_<wbr>wrapper</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../index.html">common_function</a>::<wbr><a href="../index.html">aggrs</a>::<wbr><a href="index.html">aggr_wrapper</a></div><h1>Function <span class="fn">is_<wbr>all_<wbr>aggr_<wbr>exprs_<wbr>steppable</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/common_function/aggrs/aggr_wrapper.rs.html#72-87">Source</a> </span></div><pre class="rust item-decl"><code>pub fn is_all_aggr_exprs_steppable(aggr_exprs: &[Expr]) -> <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>Check if the given aggregate expression is steppable.
|
||||
As in if it can be split into multiple steps:
|
||||
i.e. on datanode first call <code>state(input)</code> then
|
||||
on frontend call <code>calc(merge(state))</code> to get the final result.</p>
|
||||
</div></details></section></div></main></body></html>
|
||||
18
common_function/aggrs/aggr_wrapper/index.html
Normal file
18
common_function/aggrs/aggr_wrapper/index.html
Normal file
@@ -0,0 +1,18 @@
|
||||
<!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="Wrapper for making aggregate functions out of state/merge functions of original aggregate functions."><title>common_function::aggrs::aggr_wrapper - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../../static.files/rustdoc-e56847b5.css"><meta name="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="common_function" data-themes="" data-resource-suffix="" data-rustdoc-version="1.92.0-nightly (fa3155a64 2025-09-30)" data-channel="nightly" data-search-js="search-e256b49e.js" data-stringdex-js="stringdex-828709d0.js" data-settings-js="settings-c38705f0.js" ><script src="../../../static.files/storage-e2aeef58.js"></script><script defer src="../sidebar-items.js"></script><script defer src="../../../static.files/main-ce535bd0.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-263c88ec.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-eab170b8.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-044be391.svg"></head><body class="rustdoc mod"><!--[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 aggr_wrapper</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../common_function/index.html">common_<wbr>function</a><span class="version">1.0.0-rc.2</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">Module aggr_<wbr>wrapper</a></h2><h3><a href="#modules">Module Items</a></h3><ul class="block"><li><a href="#modules" title="Modules">Modules</a></li><li><a href="#structs" title="Structs">Structs</a></li><li><a href="#functions" title="Functions">Functions</a></li></ul></section><div id="rustdoc-modnav"><h2><a href="../index.html">In common_<wbr>function::<wbr>aggrs</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../index.html">common_function</a>::<wbr><a href="../index.html">aggrs</a></div><h1>Module <span>aggr_<wbr>wrapper</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/common_function/aggrs/aggr_wrapper.rs.html#15-742">Source</a> </span></div><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Wrapper for making aggregate functions out of state/merge functions of original aggregate functions.</p>
|
||||
<p>i.e. for a aggregate function <code>foo</code>, we will have a state function <code>foo_state</code> and a merge function <code>foo_merge</code>.</p>
|
||||
<p><code>foo_state</code>’s input args is the same as <code>foo</code>’s, and its output is a state object.
|
||||
Note that <code>foo_state</code> might have multiple output columns, so it’s a struct array
|
||||
that each output column is a struct field.
|
||||
<code>foo_merge</code>’s input arg is the same as <code>foo_state</code>’s output, and its output is the same as <code>foo</code>’s input.</p>
|
||||
</div></details><h2 id="modules" class="section-header">Modules<a href="#modules" class="anchor">§</a></h2><dl class="item-table"><dt><a class="mod" href="fix_order/index.html" title="mod common_function::aggrs::aggr_wrapper::fix_order">fix_<wbr>order</a></dt></dl><h2 id="structs" class="section-header">Structs<a href="#structs" class="anchor">§</a></h2><dl class="item-table"><dt><a class="struct" href="struct.MergeAccum.html" title="struct common_function::aggrs::aggr_wrapper::MergeAccum">Merge<wbr>Accum</a></dt><dd>The merge accumulator, which modify <code>update_batch</code>’s behavior to accept one struct array which
|
||||
include the state fields of original aggregate function, and merge said states into original accumulator
|
||||
the output is the same as original aggregate function</dd><dt><a class="struct" href="struct.MergeWrapper.html" title="struct common_function::aggrs::aggr_wrapper::MergeWrapper">Merge<wbr>Wrapper</a></dt><dd>TODO(discord9): mark this function as non-ser/de able</dd><dt><a class="struct" href="struct.StateAccum.html" title="struct common_function::aggrs::aggr_wrapper::StateAccum">State<wbr>Accum</a></dt><dd>The wrapper’s input is the same as the original aggregate function’s input,
|
||||
and the output is the state function’s output.</dd><dt><a class="struct" href="struct.StateMergeHelper.html" title="struct common_function::aggrs::aggr_wrapper::StateMergeHelper">State<wbr>Merge<wbr>Helper</a></dt><dd>A wrapper to make an aggregate function out of the state and merge functions of the original aggregate function.
|
||||
It contains the original aggregate function, the state functions, and the merge function.</dd><dt><a class="struct" href="struct.StateWrapper.html" title="struct common_function::aggrs::aggr_wrapper::StateWrapper">State<wbr>Wrapper</a></dt><dd>Wrapper to make an aggregate function out of a state function.</dd><dt><a class="struct" href="struct.StepAggrPlan.html" title="struct common_function::aggrs::aggr_wrapper::StepAggrPlan">Step<wbr>Aggr<wbr>Plan</a></dt><dd>A struct to hold the two aggregate plans, one for the state function(lower) and one for the merge function(upper).</dd></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.aggr_merge_func_name.html" title="fn common_function::aggrs::aggr_wrapper::aggr_merge_func_name">aggr_<wbr>merge_<wbr>func_<wbr>name</a></dt><dd>Returns the name of the merge function for the given aggregate function name.
|
||||
The merge function is used to merge the states of the state functions.
|
||||
The merge function’s name is in the format `__<aggr_name>_merge</dd><dt><a class="fn" href="fn.aggr_state_func_name.html" title="fn common_function::aggrs::aggr_wrapper::aggr_state_func_name">aggr_<wbr>state_<wbr>func_<wbr>name</a></dt><dd>Returns the name of the state function for the given aggregate function name.
|
||||
The state function is used to compute the state of the aggregate function.
|
||||
The state function’s name is in the format `__<aggr_name>_state</dd><dt><a class="fn" href="fn.get_aggr_func.html" title="fn common_function::aggrs::aggr_wrapper::get_aggr_func">get_<wbr>aggr_<wbr>func</a></dt><dt><a class="fn" href="fn.is_all_aggr_exprs_steppable.html" title="fn common_function::aggrs::aggr_wrapper::is_all_aggr_exprs_steppable">is_<wbr>all_<wbr>aggr_<wbr>exprs_<wbr>steppable</a></dt><dd>Check if the given aggregate expression is steppable.
|
||||
As in if it can be split into multiple steps:
|
||||
i.e. on datanode first call <code>state(input)</code> then
|
||||
on frontend call <code>calc(merge(state))</code> to get the final result.</dd></dl></section></div></main></body></html>
|
||||
1
common_function/aggrs/aggr_wrapper/sidebar-items.js
Normal file
1
common_function/aggrs/aggr_wrapper/sidebar-items.js
Normal file
@@ -0,0 +1 @@
|
||||
window.SIDEBAR_ITEMS = {"fn":["aggr_merge_func_name","aggr_state_func_name","get_aggr_func","is_all_aggr_exprs_steppable"],"mod":["fix_order"],"struct":["MergeAccum","MergeWrapper","StateAccum","StateMergeHelper","StateWrapper","StepAggrPlan"]};
|
||||
203
common_function/aggrs/aggr_wrapper/struct.MergeAccum.html
Normal file
203
common_function/aggrs/aggr_wrapper/struct.MergeAccum.html
Normal file
File diff suppressed because one or more lines are too long
282
common_function/aggrs/aggr_wrapper/struct.MergeWrapper.html
Normal file
282
common_function/aggrs/aggr_wrapper/struct.MergeWrapper.html
Normal file
File diff suppressed because one or more lines are too long
202
common_function/aggrs/aggr_wrapper/struct.StateAccum.html
Normal file
202
common_function/aggrs/aggr_wrapper/struct.StateAccum.html
Normal file
File diff suppressed because one or more lines are too long
203
common_function/aggrs/aggr_wrapper/struct.StateMergeHelper.html
Normal file
203
common_function/aggrs/aggr_wrapper/struct.StateMergeHelper.html
Normal file
File diff suppressed because one or more lines are too long
283
common_function/aggrs/aggr_wrapper/struct.StateWrapper.html
Normal file
283
common_function/aggrs/aggr_wrapper/struct.StateWrapper.html
Normal file
File diff suppressed because one or more lines are too long
202
common_function/aggrs/aggr_wrapper/struct.StepAggrPlan.html
Normal file
202
common_function/aggrs/aggr_wrapper/struct.StepAggrPlan.html
Normal file
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user