risingwave_stream/from_proto/
changelog.rs1use risingwave_pb::stream_plan::ChangeLogNode;
16use risingwave_storage::StateStore;
17
18use super::ExecutorBuilder;
19use crate::error::StreamResult;
20use crate::executor::{ChangeLogExecutor, Executor};
21use crate::task::ExecutorParams;
22
23pub struct ChangeLogExecutorBuilder;
24
25impl ExecutorBuilder for ChangeLogExecutorBuilder {
26 type Node = ChangeLogNode;
27
28 async fn new_boxed_executor(
29 params: ExecutorParams,
30 node: &Self::Node,
31 _store: impl StateStore,
32 ) -> StreamResult<Executor> {
33 let [input]: [_; 1] = params.input.try_into().unwrap();
34
35 let exec = ChangeLogExecutor::new(params.actor_context, input, node.need_op);
36 Ok((params.info, exec).into())
37 }
38}