risingwave_stream/from_proto/approx_percentile/
local.rs1use risingwave_pb::stream_plan::LocalApproxPercentileNode;
16
17use crate::executor::LocalApproxPercentileExecutor;
18use crate::from_proto::*;
19
20pub struct LocalApproxPercentileExecutorBuilder;
21
22impl_stream_node_body!(LocalApproxPercentile(LocalApproxPercentileNode) => LocalApproxPercentileExecutorBuilder);
23
24impl ExecutorBuilder for LocalApproxPercentileExecutorBuilder {
25 type Node = LocalApproxPercentileNode;
26
27 async fn new_boxed_executor(
28 params: ExecutorParams,
29 node: &Self::Node,
30 _store: impl StateStore,
31 ) -> StreamResult<Executor> {
32 let [input]: [_; 1] = params.input.try_into().unwrap();
33 let exec = LocalApproxPercentileExecutor::new(
34 params.actor_context,
35 input,
36 node.base,
37 node.percentile_index as usize,
38 params.config.developer.chunk_size,
39 )
40 .boxed();
41 Ok(Executor::new(params.info, exec))
42 }
43}