1#[derive(prost_helpers::AnyPB)]
3#[derive(Clone, PartialEq, ::prost::Message)]
4pub struct Dispatchers {
5 #[prost(message, repeated, tag = "1")]
6 pub dispatchers: ::prost::alloc::vec::Vec<Dispatcher>,
7}
8#[derive(prost_helpers::AnyPB)]
9#[derive(Clone, PartialEq, ::prost::Message)]
10pub struct UpstreamSinkInfo {
11 #[prost(uint32, tag = "1", wrapper = "crate::id::FragmentId")]
12 pub upstream_fragment_id: crate::id::FragmentId,
13 #[prost(message, repeated, tag = "2")]
14 pub sink_output_schema: ::prost::alloc::vec::Vec<super::plan_common::Field>,
15 #[prost(message, repeated, tag = "3")]
16 pub project_exprs: ::prost::alloc::vec::Vec<super::expr::ExprNode>,
17}
18#[derive(prost_helpers::AnyPB)]
19#[derive(Clone, PartialEq, ::prost::Message)]
20pub struct AddMutation {
21 #[prost(map = "uint32, message", tag = "1", wrapper = "crate::id::ActorId")]
23 pub actor_dispatchers: ::std::collections::HashMap<crate::id::ActorId, Dispatchers>,
24 #[prost(uint32, repeated, tag = "3", wrapper = "crate::id::ActorId")]
26 pub added_actors: ::prost::alloc::vec::Vec<crate::id::ActorId>,
27 #[prost(map = "uint32, message", tag = "2", wrapper = "crate::id::ActorId")]
31 pub actor_splits: ::std::collections::HashMap<
32 crate::id::ActorId,
33 super::source::ConnectorSplits,
34 >,
35 #[prost(bool, tag = "4")]
38 pub pause: bool,
39 #[prost(message, repeated, tag = "5")]
40 pub subscriptions_to_add: ::prost::alloc::vec::Vec<SubscriptionUpstreamInfo>,
41 #[prost(uint32, repeated, tag = "6", wrapper = "crate::id::FragmentId")]
43 pub backfill_nodes_to_pause: ::prost::alloc::vec::Vec<crate::id::FragmentId>,
44 #[prost(message, optional, tag = "7")]
46 pub actor_cdc_table_snapshot_splits: ::core::option::Option<
47 super::source::CdcTableSnapshotSplitsWithGeneration,
48 >,
49 #[prost(map = "uint32, message", tag = "8", wrapper = "crate::id::FragmentId")]
51 pub new_upstream_sinks: ::std::collections::HashMap<
52 crate::id::FragmentId,
53 add_mutation::NewUpstreamSink,
54 >,
55}
56pub mod add_mutation {
58 #[derive(prost_helpers::AnyPB)]
59 #[derive(Clone, PartialEq, ::prost::Message)]
60 pub struct NewUpstreamSink {
61 #[prost(message, optional, tag = "1")]
62 pub info: ::core::option::Option<super::UpstreamSinkInfo>,
63 #[prost(message, repeated, tag = "2")]
64 pub upstream_actors: ::prost::alloc::vec::Vec<super::super::common::ActorInfo>,
65 }
66}
67#[derive(prost_helpers::AnyPB)]
68#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
69pub struct StopMutation {
70 #[prost(uint32, repeated, tag = "1", wrapper = "crate::id::ActorId")]
71 pub actors: ::prost::alloc::vec::Vec<crate::id::ActorId>,
72 #[prost(uint32, repeated, tag = "2", wrapper = "crate::id::FragmentId")]
74 pub dropped_sink_fragments: ::prost::alloc::vec::Vec<crate::id::FragmentId>,
75}
76#[derive(prost_helpers::AnyPB)]
77#[derive(Clone, PartialEq, ::prost::Message)]
78pub struct UpdateMutation {
79 #[prost(message, repeated, tag = "1")]
81 pub dispatcher_update: ::prost::alloc::vec::Vec<update_mutation::DispatcherUpdate>,
82 #[prost(message, repeated, tag = "2")]
84 pub merge_update: ::prost::alloc::vec::Vec<update_mutation::MergeUpdate>,
85 #[prost(map = "uint32, message", tag = "3", wrapper = "crate::id::ActorId")]
87 pub actor_vnode_bitmap_update: ::std::collections::HashMap<
88 crate::id::ActorId,
89 super::common::Buffer,
90 >,
91 #[prost(uint32, repeated, tag = "4", wrapper = "crate::id::ActorId")]
93 pub dropped_actors: ::prost::alloc::vec::Vec<crate::id::ActorId>,
94 #[prost(map = "uint32, message", tag = "5", wrapper = "crate::id::ActorId")]
97 pub actor_splits: ::std::collections::HashMap<
98 crate::id::ActorId,
99 super::source::ConnectorSplits,
100 >,
101 #[prost(map = "uint32, message", tag = "6", wrapper = "crate::id::ActorId")]
104 pub actor_new_dispatchers: ::std::collections::HashMap<
105 crate::id::ActorId,
106 Dispatchers,
107 >,
108 #[prost(message, optional, tag = "7")]
110 pub actor_cdc_table_snapshot_splits: ::core::option::Option<
111 super::source::CdcTableSnapshotSplitsWithGeneration,
112 >,
113 #[prost(map = "uint32, message", tag = "8")]
114 pub sink_schema_change: ::std::collections::HashMap<u32, SinkSchemaChange>,
115 #[prost(message, repeated, tag = "9")]
116 pub subscriptions_to_drop: ::prost::alloc::vec::Vec<SubscriptionUpstreamInfo>,
117}
118pub mod update_mutation {
120 #[derive(prost_helpers::AnyPB)]
121 #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
122 pub struct DispatcherUpdate {
123 #[prost(uint32, tag = "1", wrapper = "crate::id::ActorId")]
125 pub actor_id: crate::id::ActorId,
126 #[prost(uint32, tag = "2", wrapper = "crate::id::FragmentId")]
127 pub dispatcher_id: crate::id::FragmentId,
128 #[prost(message, optional, tag = "3")]
131 pub hash_mapping: ::core::option::Option<super::ActorMapping>,
132 #[prost(uint32, repeated, tag = "4", wrapper = "crate::id::ActorId")]
134 pub added_downstream_actor_id: ::prost::alloc::vec::Vec<crate::id::ActorId>,
135 #[prost(uint32, repeated, tag = "5", wrapper = "crate::id::ActorId")]
137 pub removed_downstream_actor_id: ::prost::alloc::vec::Vec<crate::id::ActorId>,
138 }
139 #[derive(prost_helpers::AnyPB)]
140 #[derive(Clone, PartialEq, ::prost::Message)]
141 pub struct MergeUpdate {
142 #[prost(uint32, tag = "1", wrapper = "crate::id::ActorId")]
144 pub actor_id: crate::id::ActorId,
145 #[prost(uint32, tag = "2", wrapper = "crate::id::FragmentId")]
146 pub upstream_fragment_id: crate::id::FragmentId,
147 #[prost(uint32, optional, tag = "5", wrapper = "crate::id::FragmentId")]
151 pub new_upstream_fragment_id: ::core::option::Option<crate::id::FragmentId>,
152 #[prost(message, repeated, tag = "3")]
154 pub added_upstream_actors: ::prost::alloc::vec::Vec<
155 super::super::common::ActorInfo,
156 >,
157 #[prost(uint32, repeated, tag = "4", wrapper = "crate::id::ActorId")]
160 pub removed_upstream_actor_id: ::prost::alloc::vec::Vec<crate::id::ActorId>,
161 }
162}
163#[derive(prost_helpers::AnyPB)]
164#[derive(Clone, PartialEq, ::prost::Message)]
165pub struct SourceChangeSplitMutation {
166 #[prost(map = "uint32, message", tag = "2", wrapper = "crate::id::ActorId")]
168 pub actor_splits: ::std::collections::HashMap<
169 crate::id::ActorId,
170 super::source::ConnectorSplits,
171 >,
172}
173#[derive(prost_helpers::AnyPB)]
174#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
175pub struct PauseMutation {}
176#[derive(prost_helpers::AnyPB)]
177#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
178pub struct ResumeMutation {}
179#[derive(prost_helpers::AnyPB)]
180#[derive(Clone, PartialEq, ::prost::Message)]
181pub struct ThrottleMutation {
182 #[prost(map = "uint32, message", tag = "1", wrapper = "crate::id::FragmentId")]
183 pub fragment_throttle: ::std::collections::HashMap<
184 crate::id::FragmentId,
185 throttle_mutation::ThrottleConfig,
186 >,
187}
188pub mod throttle_mutation {
190 #[derive(prost_helpers::AnyPB)]
191 #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
192 pub struct ThrottleConfig {
193 #[prost(uint32, optional, tag = "1")]
194 pub rate_limit: ::core::option::Option<u32>,
195 #[prost(enumeration = "super::super::common::ThrottleType", tag = "2")]
196 pub throttle_type: i32,
197 }
198}
199#[derive(prost_helpers::AnyPB)]
200#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
201pub struct SubscriptionUpstreamInfo {
202 #[prost(uint32, tag = "1", wrapper = "crate::id::SubscriberId")]
204 pub subscriber_id: crate::id::SubscriberId,
205 #[prost(uint32, tag = "2", wrapper = "crate::id::TableId")]
206 pub upstream_mv_table_id: crate::id::TableId,
207}
208#[derive(prost_helpers::AnyPB)]
209#[derive(Clone, PartialEq, ::prost::Message)]
210pub struct DropSubscriptionsMutation {
211 #[prost(message, repeated, tag = "1")]
212 pub info: ::prost::alloc::vec::Vec<SubscriptionUpstreamInfo>,
213}
214#[derive(prost_helpers::AnyPB)]
215#[derive(Clone, PartialEq, ::prost::Message)]
216pub struct ConnectorPropsChangeMutation {
217 #[prost(map = "uint32, message", tag = "1")]
218 pub connector_props_infos: ::std::collections::HashMap<
219 u32,
220 connector_props_change_mutation::ConnectorPropsInfo,
221 >,
222}
223pub mod connector_props_change_mutation {
225 #[derive(prost_helpers::AnyPB)]
226 #[derive(Clone, PartialEq, ::prost::Message)]
227 pub struct ConnectorPropsInfo {
228 #[prost(map = "string, string", tag = "1")]
229 pub connector_props_info: ::std::collections::HashMap<
230 ::prost::alloc::string::String,
231 ::prost::alloc::string::String,
232 >,
233 }
234}
235#[derive(prost_helpers::AnyPB)]
236#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
237pub struct StartFragmentBackfillMutation {
238 #[prost(uint32, repeated, tag = "1", wrapper = "crate::id::FragmentId")]
239 pub fragment_ids: ::prost::alloc::vec::Vec<crate::id::FragmentId>,
240}
241#[derive(prost_helpers::AnyPB)]
242#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
243pub struct RefreshStartMutation {
244 #[prost(uint32, tag = "1", wrapper = "crate::id::TableId")]
246 pub table_id: crate::id::TableId,
247 #[prost(uint32, tag = "2", wrapper = "crate::id::SourceId")]
249 pub associated_source_id: crate::id::SourceId,
250}
251#[derive(prost_helpers::AnyPB)]
252#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
253pub struct ListFinishMutation {
254 #[prost(uint32, tag = "1", wrapper = "crate::id::SourceId")]
256 pub associated_source_id: crate::id::SourceId,
257}
258#[derive(prost_helpers::AnyPB)]
259#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
260pub struct LoadFinishMutation {
261 #[prost(uint32, tag = "1", wrapper = "crate::id::SourceId")]
263 pub associated_source_id: crate::id::SourceId,
264}
265#[derive(prost_helpers::AnyPB)]
266#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
267pub struct ResetSourceMutation {
268 #[prost(uint32, tag = "1")]
270 pub source_id: u32,
271}
272#[derive(prost_helpers::AnyPB)]
275#[derive(Clone, PartialEq, ::prost::Message)]
276pub struct InjectSourceOffsetsMutation {
277 #[prost(uint32, tag = "1")]
279 pub source_id: u32,
280 #[prost(map = "string, string", tag = "2")]
282 pub split_offsets: ::std::collections::HashMap<
283 ::prost::alloc::string::String,
284 ::prost::alloc::string::String,
285 >,
286}
287#[derive(prost_helpers::AnyPB)]
288#[derive(Clone, PartialEq, ::prost::Message)]
289pub struct BarrierMutation {
290 #[prost(
291 oneof = "barrier_mutation::Mutation",
292 tags = "3, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16, 17, 18, 19"
293 )]
294 pub mutation: ::core::option::Option<barrier_mutation::Mutation>,
295}
296pub mod barrier_mutation {
298 #[derive(prost_helpers::AnyPB)]
299 #[derive(Clone, PartialEq, ::prost::Oneof)]
300 pub enum Mutation {
301 #[prost(message, tag = "3")]
303 Add(super::AddMutation),
304 #[prost(message, tag = "4")]
307 Stop(super::StopMutation),
308 #[prost(message, tag = "5")]
310 Update(super::UpdateMutation),
311 #[prost(message, tag = "6")]
313 Splits(super::SourceChangeSplitMutation),
314 #[prost(message, tag = "7")]
316 Pause(super::PauseMutation),
317 #[prost(message, tag = "8")]
319 Resume(super::ResumeMutation),
320 #[prost(message, tag = "10")]
322 Throttle(super::ThrottleMutation),
323 #[prost(message, tag = "12")]
325 DropSubscriptions(super::DropSubscriptionsMutation),
326 #[prost(message, tag = "13")]
328 ConnectorPropsChange(super::ConnectorPropsChangeMutation),
329 #[prost(message, tag = "14")]
335 StartFragmentBackfill(super::StartFragmentBackfillMutation),
336 #[prost(message, tag = "15")]
338 RefreshStart(super::RefreshStartMutation),
339 #[prost(message, tag = "16")]
341 LoadFinish(super::LoadFinishMutation),
342 #[prost(message, tag = "17")]
344 ListFinish(super::ListFinishMutation),
345 #[prost(message, tag = "18")]
347 ResetSource(super::ResetSourceMutation),
348 #[prost(message, tag = "19")]
350 InjectSourceOffsets(super::InjectSourceOffsetsMutation),
351 }
352}
353#[derive(prost_helpers::AnyPB)]
354#[derive(Clone, PartialEq, ::prost::Message)]
355pub struct Barrier {
356 #[prost(message, optional, tag = "1")]
357 pub epoch: ::core::option::Option<super::data::Epoch>,
358 #[prost(message, optional, tag = "3")]
359 pub mutation: ::core::option::Option<BarrierMutation>,
360 #[prost(map = "string, string", tag = "2")]
362 pub tracing_context: ::std::collections::HashMap<
363 ::prost::alloc::string::String,
364 ::prost::alloc::string::String,
365 >,
366 #[prost(enumeration = "barrier::BarrierKind", tag = "9")]
368 pub kind: i32,
369}
370pub mod barrier {
372 #[derive(prost_helpers::AnyPB)]
373 #[derive(::enum_as_inner::EnumAsInner)]
374 #[derive(
375 Clone,
376 Copy,
377 Debug,
378 PartialEq,
379 Eq,
380 Hash,
381 PartialOrd,
382 Ord,
383 ::prost::Enumeration
384 )]
385 #[repr(i32)]
386 pub enum BarrierKind {
387 Unspecified = 0,
388 Initial = 1,
391 Barrier = 2,
393 Checkpoint = 3,
395 }
396 impl BarrierKind {
397 pub fn as_str_name(&self) -> &'static str {
402 match self {
403 Self::Unspecified => "BARRIER_KIND_UNSPECIFIED",
404 Self::Initial => "BARRIER_KIND_INITIAL",
405 Self::Barrier => "BARRIER_KIND_BARRIER",
406 Self::Checkpoint => "BARRIER_KIND_CHECKPOINT",
407 }
408 }
409 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
411 match value {
412 "BARRIER_KIND_UNSPECIFIED" => Some(Self::Unspecified),
413 "BARRIER_KIND_INITIAL" => Some(Self::Initial),
414 "BARRIER_KIND_BARRIER" => Some(Self::Barrier),
415 "BARRIER_KIND_CHECKPOINT" => Some(Self::Checkpoint),
416 _ => None,
417 }
418 }
419 }
420}
421#[derive(prost_helpers::AnyPB)]
422#[derive(Clone, PartialEq, ::prost::Message)]
423pub struct Watermark {
424 #[prost(message, optional, tag = "1")]
426 pub column: ::core::option::Option<super::expr::InputRef>,
427 #[prost(message, optional, tag = "3")]
429 pub val: ::core::option::Option<super::data::Datum>,
430}
431#[derive(prost_helpers::AnyPB)]
432#[derive(Clone, PartialEq, ::prost::Message)]
433pub struct StreamMessage {
434 #[prost(oneof = "stream_message::StreamMessage", tags = "1, 2, 3")]
435 pub stream_message: ::core::option::Option<stream_message::StreamMessage>,
436}
437pub mod stream_message {
439 #[derive(prost_helpers::AnyPB)]
440 #[derive(Clone, PartialEq, ::prost::Oneof)]
441 pub enum StreamMessage {
442 #[prost(message, tag = "1")]
443 StreamChunk(super::super::data::StreamChunk),
444 #[prost(message, tag = "2")]
445 Barrier(super::Barrier),
446 #[prost(message, tag = "3")]
447 Watermark(super::Watermark),
448 }
449}
450#[derive(prost_helpers::AnyPB)]
451#[derive(Clone, PartialEq, ::prost::Message)]
452pub struct StreamMessageBatch {
453 #[prost(oneof = "stream_message_batch::StreamMessageBatch", tags = "1, 2, 3")]
454 pub stream_message_batch: ::core::option::Option<
455 stream_message_batch::StreamMessageBatch,
456 >,
457}
458pub mod stream_message_batch {
460 #[derive(prost_helpers::AnyPB)]
461 #[derive(Clone, PartialEq, ::prost::Message)]
462 pub struct BarrierBatch {
463 #[prost(message, repeated, tag = "1")]
464 pub barriers: ::prost::alloc::vec::Vec<super::Barrier>,
465 }
466 #[derive(prost_helpers::AnyPB)]
467 #[derive(Clone, PartialEq, ::prost::Oneof)]
468 pub enum StreamMessageBatch {
469 #[prost(message, tag = "1")]
470 StreamChunk(super::super::data::StreamChunk),
471 #[prost(message, tag = "2")]
472 BarrierBatch(BarrierBatch),
473 #[prost(message, tag = "3")]
474 Watermark(super::Watermark),
475 }
476}
477#[derive(prost_helpers::AnyPB)]
479#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
480pub struct ActorMapping {
481 #[prost(uint32, repeated, tag = "1")]
482 pub original_indices: ::prost::alloc::vec::Vec<u32>,
483 #[prost(uint32, repeated, tag = "2", wrapper = "crate::id::ActorId")]
484 pub data: ::prost::alloc::vec::Vec<crate::id::ActorId>,
485}
486#[derive(prost_helpers::AnyPB)]
487#[derive(Clone, PartialEq, ::prost::Message)]
488pub struct Columns {
489 #[prost(message, repeated, tag = "1")]
490 pub columns: ::prost::alloc::vec::Vec<super::plan_common::ColumnCatalog>,
491}
492#[derive(prost_helpers::AnyPB)]
493#[derive(Clone, PartialEq, ::prost::Message)]
494pub struct StreamSource {
495 #[prost(uint32, tag = "1", wrapper = "crate::id::SourceId")]
496 pub source_id: crate::id::SourceId,
497 #[prost(message, optional, tag = "2")]
498 pub state_table: ::core::option::Option<super::catalog::Table>,
499 #[prost(uint32, optional, tag = "3")]
500 pub row_id_index: ::core::option::Option<u32>,
501 #[prost(message, repeated, tag = "4")]
502 pub columns: ::prost::alloc::vec::Vec<super::plan_common::ColumnCatalog>,
503 #[prost(btree_map = "string, string", tag = "6")]
504 pub with_properties: ::prost::alloc::collections::BTreeMap<
505 ::prost::alloc::string::String,
506 ::prost::alloc::string::String,
507 >,
508 #[prost(message, optional, tag = "7")]
509 pub info: ::core::option::Option<super::catalog::StreamSourceInfo>,
510 #[prost(string, tag = "8")]
511 pub source_name: ::prost::alloc::string::String,
512 #[prost(uint32, optional, tag = "9")]
514 pub rate_limit: ::core::option::Option<u32>,
515 #[prost(btree_map = "string, message", tag = "10")]
516 pub secret_refs: ::prost::alloc::collections::BTreeMap<
517 ::prost::alloc::string::String,
518 super::secret::SecretRef,
519 >,
520 #[prost(message, optional, tag = "11")]
522 pub downstream_columns: ::core::option::Option<Columns>,
523 #[prost(message, optional, tag = "12")]
524 pub refresh_mode: ::core::option::Option<super::plan_common::SourceRefreshMode>,
525 #[prost(uint32, optional, tag = "13", wrapper = "crate::id::TableId")]
526 pub associated_table_id: ::core::option::Option<crate::id::TableId>,
527}
528#[derive(prost_helpers::AnyPB)]
530#[derive(Clone, PartialEq, ::prost::Message)]
531pub struct StreamFsFetch {
532 #[prost(uint32, tag = "1", wrapper = "crate::id::SourceId")]
533 pub source_id: crate::id::SourceId,
534 #[prost(message, optional, tag = "2")]
535 pub state_table: ::core::option::Option<super::catalog::Table>,
536 #[prost(uint32, optional, tag = "3")]
537 pub row_id_index: ::core::option::Option<u32>,
538 #[prost(message, repeated, tag = "4")]
539 pub columns: ::prost::alloc::vec::Vec<super::plan_common::ColumnCatalog>,
540 #[prost(btree_map = "string, string", tag = "6")]
541 pub with_properties: ::prost::alloc::collections::BTreeMap<
542 ::prost::alloc::string::String,
543 ::prost::alloc::string::String,
544 >,
545 #[prost(message, optional, tag = "7")]
546 pub info: ::core::option::Option<super::catalog::StreamSourceInfo>,
547 #[prost(string, tag = "8")]
548 pub source_name: ::prost::alloc::string::String,
549 #[prost(uint32, optional, tag = "9")]
551 pub rate_limit: ::core::option::Option<u32>,
552 #[prost(btree_map = "string, message", tag = "10")]
553 pub secret_refs: ::prost::alloc::collections::BTreeMap<
554 ::prost::alloc::string::String,
555 super::secret::SecretRef,
556 >,
557 #[prost(message, optional, tag = "11")]
558 pub refresh_mode: ::core::option::Option<super::plan_common::SourceRefreshMode>,
559 #[prost(uint32, optional, tag = "12", wrapper = "crate::id::TableId")]
560 pub associated_table_id: ::core::option::Option<crate::id::TableId>,
561}
562#[derive(prost_helpers::AnyPB)]
565#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
566pub struct BarrierRecvNode {}
567#[derive(prost_helpers::AnyPB)]
568#[derive(Clone, PartialEq, ::prost::Message)]
569pub struct SourceNode {
570 #[prost(message, optional, tag = "1")]
573 pub source_inner: ::core::option::Option<StreamSource>,
574}
575#[derive(prost_helpers::AnyPB)]
576#[derive(Clone, PartialEq, ::prost::Message)]
577pub struct StreamFsFetchNode {
578 #[prost(message, optional, tag = "1")]
579 pub node_inner: ::core::option::Option<StreamFsFetch>,
580}
581#[derive(prost_helpers::AnyPB)]
584#[derive(Clone, PartialEq, ::prost::Message)]
585pub struct SourceBackfillNode {
586 #[prost(uint32, tag = "1", wrapper = "crate::id::SourceId")]
587 pub upstream_source_id: crate::id::SourceId,
588 #[prost(uint32, optional, tag = "2")]
589 pub row_id_index: ::core::option::Option<u32>,
590 #[prost(message, repeated, tag = "3")]
591 pub columns: ::prost::alloc::vec::Vec<super::plan_common::ColumnCatalog>,
592 #[prost(message, optional, tag = "4")]
593 pub info: ::core::option::Option<super::catalog::StreamSourceInfo>,
594 #[prost(string, tag = "5")]
595 pub source_name: ::prost::alloc::string::String,
596 #[prost(btree_map = "string, string", tag = "6")]
597 pub with_properties: ::prost::alloc::collections::BTreeMap<
598 ::prost::alloc::string::String,
599 ::prost::alloc::string::String,
600 >,
601 #[prost(uint32, optional, tag = "7")]
603 pub rate_limit: ::core::option::Option<u32>,
604 #[prost(message, optional, tag = "8")]
606 pub state_table: ::core::option::Option<super::catalog::Table>,
607 #[prost(btree_map = "string, message", tag = "9")]
608 pub secret_refs: ::prost::alloc::collections::BTreeMap<
609 ::prost::alloc::string::String,
610 super::secret::SecretRef,
611 >,
612}
613#[derive(prost_helpers::AnyPB)]
614#[derive(Clone, PartialEq, ::prost::Message)]
615pub struct SinkDesc {
616 #[prost(uint32, tag = "1", wrapper = "crate::id::SinkId")]
617 pub id: crate::id::SinkId,
618 #[prost(string, tag = "2")]
619 pub name: ::prost::alloc::string::String,
620 #[prost(string, tag = "3")]
621 pub definition: ::prost::alloc::string::String,
622 #[prost(message, repeated, tag = "5")]
623 pub plan_pk: ::prost::alloc::vec::Vec<super::common::ColumnOrder>,
624 #[prost(uint32, repeated, tag = "6")]
625 pub downstream_pk: ::prost::alloc::vec::Vec<u32>,
626 #[prost(uint32, repeated, tag = "7")]
627 pub distribution_key: ::prost::alloc::vec::Vec<u32>,
628 #[prost(btree_map = "string, string", tag = "8")]
629 pub properties: ::prost::alloc::collections::BTreeMap<
630 ::prost::alloc::string::String,
631 ::prost::alloc::string::String,
632 >,
633 #[prost(enumeration = "super::catalog::SinkType", tag = "9")]
635 pub sink_type: i32,
636 #[prost(message, repeated, tag = "10")]
637 pub column_catalogs: ::prost::alloc::vec::Vec<super::plan_common::ColumnCatalog>,
638 #[prost(string, tag = "11")]
639 pub db_name: ::prost::alloc::string::String,
640 #[prost(string, tag = "12")]
643 pub sink_from_name: ::prost::alloc::string::String,
644 #[prost(message, optional, tag = "13")]
645 pub format_desc: ::core::option::Option<super::catalog::SinkFormatDesc>,
646 #[prost(uint32, optional, tag = "14")]
647 pub target_table: ::core::option::Option<u32>,
648 #[prost(uint64, optional, tag = "15")]
649 pub extra_partition_col_idx: ::core::option::Option<u64>,
650 #[prost(btree_map = "string, message", tag = "16")]
651 pub secret_refs: ::prost::alloc::collections::BTreeMap<
652 ::prost::alloc::string::String,
653 super::secret::SecretRef,
654 >,
655 #[prost(bool, tag = "17")]
659 pub raw_ignore_delete: bool,
660}
661#[derive(prost_helpers::AnyPB)]
662#[derive(Clone, PartialEq, ::prost::Message)]
663pub struct SinkNode {
664 #[prost(message, optional, tag = "1")]
665 pub sink_desc: ::core::option::Option<SinkDesc>,
666 #[prost(message, optional, tag = "2")]
668 pub table: ::core::option::Option<super::catalog::Table>,
669 #[prost(enumeration = "SinkLogStoreType", tag = "3")]
670 pub log_store_type: i32,
671 #[prost(uint32, optional, tag = "4")]
672 pub rate_limit: ::core::option::Option<u32>,
673}
674#[derive(prost_helpers::AnyPB)]
675#[derive(Clone, PartialEq, ::prost::Message)]
676pub struct ProjectNode {
677 #[prost(message, repeated, tag = "1")]
678 pub select_list: ::prost::alloc::vec::Vec<super::expr::ExprNode>,
679 #[prost(uint32, repeated, tag = "2")]
683 pub watermark_input_cols: ::prost::alloc::vec::Vec<u32>,
684 #[prost(uint32, repeated, tag = "3")]
685 pub watermark_output_cols: ::prost::alloc::vec::Vec<u32>,
686 #[prost(uint32, repeated, tag = "4")]
687 pub nondecreasing_exprs: ::prost::alloc::vec::Vec<u32>,
688 #[prost(bool, tag = "5")]
691 pub noop_update_hint: bool,
692}
693#[derive(prost_helpers::AnyPB)]
694#[derive(Clone, PartialEq, ::prost::Message)]
695pub struct FilterNode {
696 #[prost(message, optional, tag = "1")]
697 pub search_condition: ::core::option::Option<super::expr::ExprNode>,
698}
699#[derive(prost_helpers::AnyPB)]
700#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
701pub struct ChangeLogNode {
702 #[prost(bool, tag = "1")]
704 pub need_op: bool,
705 #[prost(uint32, repeated, tag = "2")]
706 pub distribution_keys: ::prost::alloc::vec::Vec<u32>,
707}
708#[derive(prost_helpers::AnyPB)]
709#[derive(Clone, PartialEq, ::prost::Message)]
710pub struct CdcFilterNode {
711 #[prost(message, optional, tag = "1")]
712 pub search_condition: ::core::option::Option<super::expr::ExprNode>,
713 #[prost(uint32, tag = "2", wrapper = "crate::id::SourceId")]
714 pub upstream_source_id: crate::id::SourceId,
715}
716#[derive(prost_helpers::AnyPB)]
725#[derive(Clone, PartialEq, ::prost::Message)]
726pub struct MaterializeNode {
727 #[prost(uint32, tag = "1", wrapper = "crate::id::TableId")]
728 pub table_id: crate::id::TableId,
729 #[prost(message, repeated, tag = "2")]
731 pub column_orders: ::prost::alloc::vec::Vec<super::common::ColumnOrder>,
732 #[prost(message, optional, tag = "3")]
739 pub table: ::core::option::Option<super::catalog::Table>,
740 #[prost(message, optional, tag = "5")]
749 pub staging_table: ::core::option::Option<super::catalog::Table>,
750 #[prost(message, optional, tag = "6")]
763 pub refresh_progress_table: ::core::option::Option<super::catalog::Table>,
764 #[prost(bool, tag = "7")]
766 pub cleaned_by_ttl_watermark: bool,
767}
768#[derive(prost_helpers::AnyPB)]
769#[derive(Clone, PartialEq, ::prost::Message)]
770pub struct AggCallState {
771 #[prost(oneof = "agg_call_state::Inner", tags = "1, 3")]
772 pub inner: ::core::option::Option<agg_call_state::Inner>,
773}
774pub mod agg_call_state {
776 #[derive(prost_helpers::AnyPB)]
778 #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
779 pub struct ValueState {}
780 #[derive(prost_helpers::AnyPB)]
782 #[derive(Clone, PartialEq, ::prost::Message)]
783 pub struct MaterializedInputState {
784 #[prost(message, optional, tag = "1")]
785 pub table: ::core::option::Option<super::super::catalog::Table>,
786 #[prost(uint32, repeated, tag = "2")]
788 pub included_upstream_indices: ::prost::alloc::vec::Vec<u32>,
789 #[prost(uint32, repeated, tag = "3")]
790 pub table_value_indices: ::prost::alloc::vec::Vec<u32>,
791 #[prost(message, repeated, tag = "4")]
792 pub order_columns: ::prost::alloc::vec::Vec<super::super::common::ColumnOrder>,
793 }
794 #[derive(prost_helpers::AnyPB)]
795 #[derive(Clone, PartialEq, ::prost::Oneof)]
796 pub enum Inner {
797 #[prost(message, tag = "1")]
798 ValueState(ValueState),
799 #[prost(message, tag = "3")]
800 MaterializedInputState(MaterializedInputState),
801 }
802}
803#[derive(prost_helpers::AnyPB)]
804#[derive(Clone, PartialEq, ::prost::Message)]
805pub struct SimpleAggNode {
806 #[prost(message, repeated, tag = "1")]
807 pub agg_calls: ::prost::alloc::vec::Vec<super::expr::AggCall>,
808 #[prost(message, repeated, tag = "3")]
809 pub agg_call_states: ::prost::alloc::vec::Vec<AggCallState>,
810 #[prost(message, optional, tag = "4")]
811 pub intermediate_state_table: ::core::option::Option<super::catalog::Table>,
812 #[prost(bool, tag = "5")]
815 pub is_append_only: bool,
816 #[prost(map = "uint32, message", tag = "6")]
817 pub distinct_dedup_tables: ::std::collections::HashMap<u32, super::catalog::Table>,
818 #[prost(uint32, tag = "7")]
819 pub row_count_index: u32,
820 #[prost(enumeration = "AggNodeVersion", tag = "8")]
821 pub version: i32,
822 #[prost(bool, tag = "9")]
825 pub must_output_per_barrier: bool,
826}
827#[derive(prost_helpers::AnyPB)]
828#[derive(Clone, PartialEq, ::prost::Message)]
829pub struct HashAggNode {
830 #[prost(uint32, repeated, tag = "1")]
831 pub group_key: ::prost::alloc::vec::Vec<u32>,
832 #[prost(message, repeated, tag = "2")]
833 pub agg_calls: ::prost::alloc::vec::Vec<super::expr::AggCall>,
834 #[prost(message, repeated, tag = "3")]
835 pub agg_call_states: ::prost::alloc::vec::Vec<AggCallState>,
836 #[prost(message, optional, tag = "4")]
837 pub intermediate_state_table: ::core::option::Option<super::catalog::Table>,
838 #[prost(bool, tag = "5")]
841 pub is_append_only: bool,
842 #[prost(map = "uint32, message", tag = "6")]
843 pub distinct_dedup_tables: ::std::collections::HashMap<u32, super::catalog::Table>,
844 #[prost(uint32, tag = "7")]
845 pub row_count_index: u32,
846 #[prost(bool, tag = "8")]
847 pub emit_on_window_close: bool,
848 #[prost(enumeration = "AggNodeVersion", tag = "9")]
849 pub version: i32,
850}
851#[derive(prost_helpers::AnyPB)]
852#[derive(Clone, PartialEq, ::prost::Message)]
853pub struct TopNNode {
854 #[prost(uint64, tag = "1")]
856 pub limit: u64,
857 #[prost(uint64, tag = "2")]
858 pub offset: u64,
859 #[prost(message, optional, tag = "3")]
860 pub table: ::core::option::Option<super::catalog::Table>,
861 #[prost(message, repeated, tag = "4")]
862 pub order_by: ::prost::alloc::vec::Vec<super::common::ColumnOrder>,
863 #[prost(bool, tag = "5")]
864 pub with_ties: bool,
865}
866#[derive(prost_helpers::AnyPB)]
867#[derive(Clone, PartialEq, ::prost::Message)]
868pub struct GroupTopNNode {
869 #[prost(uint64, tag = "1")]
871 pub limit: u64,
872 #[prost(uint64, tag = "2")]
873 pub offset: u64,
874 #[prost(uint32, repeated, tag = "3")]
875 pub group_key: ::prost::alloc::vec::Vec<u32>,
876 #[prost(message, optional, tag = "4")]
877 pub table: ::core::option::Option<super::catalog::Table>,
878 #[prost(message, repeated, tag = "5")]
879 pub order_by: ::prost::alloc::vec::Vec<super::common::ColumnOrder>,
880 #[prost(bool, tag = "6")]
881 pub with_ties: bool,
882}
883#[derive(prost_helpers::AnyPB)]
884#[derive(Clone, PartialEq, ::prost::Message)]
885pub struct DeltaExpression {
886 #[prost(enumeration = "super::expr::expr_node::Type", tag = "1")]
887 pub delta_type: i32,
888 #[prost(message, optional, tag = "2")]
889 pub delta: ::core::option::Option<super::expr::ExprNode>,
890}
891#[derive(prost_helpers::AnyPB)]
893#[derive(Clone, PartialEq, ::prost::Message)]
894pub struct InequalityPair {
895 #[prost(uint32, tag = "1")]
897 pub key_required_larger: u32,
898 #[prost(uint32, tag = "2")]
900 pub key_required_smaller: u32,
901 #[prost(bool, tag = "3")]
903 pub clean_state: bool,
904 #[prost(message, optional, tag = "4")]
906 pub delta_expression: ::core::option::Option<DeltaExpression>,
907}
908#[derive(prost_helpers::AnyPB)]
909#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
910pub struct InequalityPairV2 {
911 #[prost(uint32, tag = "1")]
913 pub left_idx: u32,
914 #[prost(uint32, tag = "2")]
916 pub right_idx: u32,
917 #[prost(bool, tag = "3")]
919 pub clean_left_state: bool,
920 #[prost(bool, tag = "4")]
922 pub clean_right_state: bool,
923 #[prost(enumeration = "InequalityType", tag = "5")]
925 pub op: i32,
926}
927#[derive(prost_helpers::AnyPB)]
928#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
929pub struct JoinKeyWatermarkIndex {
930 #[prost(uint32, tag = "1")]
932 pub index: u32,
933 #[prost(bool, tag = "2")]
935 pub do_state_cleaning: bool,
936}
937#[derive(prost_helpers::AnyPB)]
938#[derive(Clone, PartialEq, ::prost::Message)]
939pub struct HashJoinWatermarkHandleDesc {
940 #[prost(message, repeated, tag = "1")]
942 pub watermark_indices_in_jk: ::prost::alloc::vec::Vec<JoinKeyWatermarkIndex>,
943 #[prost(message, repeated, tag = "2")]
945 pub inequality_pairs: ::prost::alloc::vec::Vec<InequalityPairV2>,
946}
947#[derive(prost_helpers::AnyPB)]
948#[derive(Clone, PartialEq, ::prost::Message)]
949pub struct HashJoinNode {
950 #[prost(enumeration = "super::plan_common::JoinType", tag = "1")]
951 pub join_type: i32,
952 #[prost(int32, repeated, tag = "2")]
953 pub left_key: ::prost::alloc::vec::Vec<i32>,
954 #[prost(int32, repeated, tag = "3")]
955 pub right_key: ::prost::alloc::vec::Vec<i32>,
956 #[prost(message, optional, tag = "4")]
957 pub condition: ::core::option::Option<super::expr::ExprNode>,
958 #[prost(message, optional, tag = "6")]
960 pub left_table: ::core::option::Option<super::catalog::Table>,
961 #[prost(message, optional, tag = "7")]
963 pub right_table: ::core::option::Option<super::catalog::Table>,
964 #[prost(message, optional, tag = "8")]
966 pub left_degree_table: ::core::option::Option<super::catalog::Table>,
967 #[prost(message, optional, tag = "9")]
969 pub right_degree_table: ::core::option::Option<super::catalog::Table>,
970 #[prost(uint32, repeated, tag = "10")]
972 pub output_indices: ::prost::alloc::vec::Vec<u32>,
973 #[prost(uint32, repeated, tag = "11")]
978 pub left_deduped_input_pk_indices: ::prost::alloc::vec::Vec<u32>,
979 #[prost(uint32, repeated, tag = "12")]
984 pub right_deduped_input_pk_indices: ::prost::alloc::vec::Vec<u32>,
985 #[prost(bool, repeated, tag = "13")]
986 pub null_safe: ::prost::alloc::vec::Vec<bool>,
987 #[prost(bool, tag = "14")]
990 pub is_append_only: bool,
991 #[deprecated]
994 #[prost(enumeration = "JoinEncodingType", tag = "15")]
995 pub join_encoding_type: i32,
996 #[prost(message, optional, tag = "17")]
998 pub watermark_handle_desc: ::core::option::Option<HashJoinWatermarkHandleDesc>,
999}
1000#[derive(prost_helpers::AnyPB)]
1001#[derive(Clone, PartialEq, ::prost::Message)]
1002pub struct AsOfJoinNode {
1003 #[prost(enumeration = "super::plan_common::AsOfJoinType", tag = "1")]
1004 pub join_type: i32,
1005 #[prost(int32, repeated, tag = "2")]
1006 pub left_key: ::prost::alloc::vec::Vec<i32>,
1007 #[prost(int32, repeated, tag = "3")]
1008 pub right_key: ::prost::alloc::vec::Vec<i32>,
1009 #[prost(message, optional, tag = "4")]
1011 pub left_table: ::core::option::Option<super::catalog::Table>,
1012 #[prost(message, optional, tag = "5")]
1014 pub right_table: ::core::option::Option<super::catalog::Table>,
1015 #[prost(uint32, repeated, tag = "6")]
1017 pub output_indices: ::prost::alloc::vec::Vec<u32>,
1018 #[prost(uint32, repeated, tag = "7")]
1022 pub left_deduped_input_pk_indices: ::prost::alloc::vec::Vec<u32>,
1023 #[prost(uint32, repeated, tag = "8")]
1027 pub right_deduped_input_pk_indices: ::prost::alloc::vec::Vec<u32>,
1028 #[prost(bool, repeated, tag = "9")]
1029 pub null_safe: ::prost::alloc::vec::Vec<bool>,
1030 #[prost(message, optional, tag = "10")]
1031 pub asof_desc: ::core::option::Option<super::plan_common::AsOfJoinDesc>,
1032 #[deprecated]
1035 #[prost(enumeration = "JoinEncodingType", tag = "11")]
1036 pub join_encoding_type: i32,
1037}
1038#[derive(prost_helpers::AnyPB)]
1039#[derive(Clone, PartialEq, ::prost::Message)]
1040pub struct TemporalJoinNode {
1041 #[prost(enumeration = "super::plan_common::JoinType", tag = "1")]
1042 pub join_type: i32,
1043 #[prost(int32, repeated, tag = "2")]
1044 pub left_key: ::prost::alloc::vec::Vec<i32>,
1045 #[prost(int32, repeated, tag = "3")]
1046 pub right_key: ::prost::alloc::vec::Vec<i32>,
1047 #[prost(bool, repeated, tag = "4")]
1048 pub null_safe: ::prost::alloc::vec::Vec<bool>,
1049 #[prost(message, optional, tag = "5")]
1050 pub condition: ::core::option::Option<super::expr::ExprNode>,
1051 #[prost(uint32, repeated, tag = "6")]
1053 pub output_indices: ::prost::alloc::vec::Vec<u32>,
1054 #[prost(message, optional, tag = "7")]
1056 pub table_desc: ::core::option::Option<super::plan_common::StorageTableDesc>,
1057 #[prost(uint32, repeated, tag = "8")]
1059 pub table_output_indices: ::prost::alloc::vec::Vec<u32>,
1060 #[prost(message, optional, tag = "9")]
1062 pub memo_table: ::core::option::Option<super::catalog::Table>,
1063 #[prost(bool, tag = "10")]
1065 pub is_nested_loop: bool,
1066}
1067#[derive(prost_helpers::AnyPB)]
1068#[derive(Clone, PartialEq, ::prost::Message)]
1069pub struct DynamicFilterNode {
1070 #[prost(uint32, tag = "1")]
1071 pub left_key: u32,
1072 #[prost(message, optional, tag = "2")]
1074 pub condition: ::core::option::Option<super::expr::ExprNode>,
1075 #[prost(message, optional, tag = "3")]
1077 pub left_table: ::core::option::Option<super::catalog::Table>,
1078 #[prost(message, optional, tag = "4")]
1080 pub right_table: ::core::option::Option<super::catalog::Table>,
1081 #[deprecated]
1088 #[prost(bool, tag = "5")]
1089 pub condition_always_relax: bool,
1090 #[prost(bool, tag = "6")]
1092 pub cleaned_by_watermark: bool,
1093}
1094#[derive(prost_helpers::AnyPB)]
1097#[derive(Clone, PartialEq, ::prost::Message)]
1098pub struct DeltaIndexJoinNode {
1099 #[prost(enumeration = "super::plan_common::JoinType", tag = "1")]
1100 pub join_type: i32,
1101 #[prost(int32, repeated, tag = "2")]
1102 pub left_key: ::prost::alloc::vec::Vec<i32>,
1103 #[prost(int32, repeated, tag = "3")]
1104 pub right_key: ::prost::alloc::vec::Vec<i32>,
1105 #[prost(message, optional, tag = "4")]
1106 pub condition: ::core::option::Option<super::expr::ExprNode>,
1107 #[prost(uint32, tag = "7", wrapper = "crate::id::TableId")]
1109 pub left_table_id: crate::id::TableId,
1110 #[prost(uint32, tag = "8", wrapper = "crate::id::TableId")]
1112 pub right_table_id: crate::id::TableId,
1113 #[prost(message, optional, tag = "9")]
1115 pub left_info: ::core::option::Option<ArrangementInfo>,
1116 #[prost(message, optional, tag = "10")]
1118 pub right_info: ::core::option::Option<ArrangementInfo>,
1119 #[prost(uint32, repeated, tag = "11")]
1121 pub output_indices: ::prost::alloc::vec::Vec<u32>,
1122}
1123#[derive(prost_helpers::AnyPB)]
1124#[derive(Clone, PartialEq, ::prost::Message)]
1125pub struct HopWindowNode {
1126 #[prost(uint32, tag = "1")]
1127 pub time_col: u32,
1128 #[prost(message, optional, tag = "2")]
1129 pub window_slide: ::core::option::Option<super::data::Interval>,
1130 #[prost(message, optional, tag = "3")]
1131 pub window_size: ::core::option::Option<super::data::Interval>,
1132 #[prost(uint32, repeated, tag = "4")]
1133 pub output_indices: ::prost::alloc::vec::Vec<u32>,
1134 #[prost(message, repeated, tag = "5")]
1135 pub window_start_exprs: ::prost::alloc::vec::Vec<super::expr::ExprNode>,
1136 #[prost(message, repeated, tag = "6")]
1137 pub window_end_exprs: ::prost::alloc::vec::Vec<super::expr::ExprNode>,
1138}
1139#[derive(prost_helpers::AnyPB)]
1140#[derive(Clone, PartialEq, ::prost::Message)]
1141pub struct MergeNode {
1142 #[deprecated]
1149 #[prost(uint32, repeated, packed = "false", tag = "1")]
1150 pub upstream_actor_id: ::prost::alloc::vec::Vec<u32>,
1151 #[prost(uint32, tag = "2", wrapper = "crate::id::FragmentId")]
1152 pub upstream_fragment_id: crate::id::FragmentId,
1153 #[prost(enumeration = "DispatcherType", tag = "3")]
1156 pub upstream_dispatcher_type: i32,
1157 #[deprecated]
1159 #[prost(message, repeated, tag = "4")]
1160 pub fields: ::prost::alloc::vec::Vec<super::plan_common::Field>,
1161}
1162#[derive(prost_helpers::AnyPB)]
1165#[derive(Clone, PartialEq, ::prost::Message)]
1166pub struct ExchangeNode {
1167 #[prost(message, optional, tag = "1")]
1168 pub strategy: ::core::option::Option<DispatchStrategy>,
1169}
1170#[derive(prost_helpers::AnyPB)]
1176#[derive(Clone, PartialEq, ::prost::Message)]
1177pub struct StreamScanNode {
1178 #[prost(uint32, tag = "1", wrapper = "crate::id::TableId")]
1179 pub table_id: crate::id::TableId,
1180 #[prost(int32, repeated, tag = "2")]
1185 pub upstream_column_ids: ::prost::alloc::vec::Vec<i32>,
1186 #[prost(uint32, repeated, tag = "3")]
1191 pub output_indices: ::prost::alloc::vec::Vec<u32>,
1192 #[prost(enumeration = "StreamScanType", tag = "4")]
1197 pub stream_scan_type: i32,
1198 #[prost(message, optional, tag = "5")]
1200 pub state_table: ::core::option::Option<super::catalog::Table>,
1201 #[prost(message, optional, tag = "7")]
1204 pub table_desc: ::core::option::Option<super::plan_common::StorageTableDesc>,
1205 #[prost(uint32, optional, tag = "8")]
1207 pub rate_limit: ::core::option::Option<u32>,
1208 #[deprecated]
1210 #[prost(uint32, tag = "9")]
1211 pub snapshot_read_barrier_interval: u32,
1212 #[prost(message, optional, tag = "10")]
1215 pub arrangement_table: ::core::option::Option<super::catalog::Table>,
1216 #[prost(uint64, optional, tag = "11")]
1217 pub snapshot_backfill_epoch: ::core::option::Option<u64>,
1218}
1219#[derive(prost_helpers::AnyPB)]
1221#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1222pub struct StreamCdcScanOptions {
1223 #[prost(bool, tag = "1")]
1225 pub disable_backfill: bool,
1226 #[prost(uint32, tag = "2")]
1227 pub snapshot_barrier_interval: u32,
1228 #[prost(uint32, tag = "3")]
1229 pub snapshot_batch_size: u32,
1230 #[prost(uint32, tag = "4")]
1231 pub backfill_parallelism: u32,
1232 #[prost(uint64, tag = "5")]
1233 pub backfill_num_rows_per_split: u64,
1234 #[prost(bool, tag = "6")]
1235 pub backfill_as_even_splits: bool,
1236 #[prost(uint32, tag = "7")]
1237 pub backfill_split_pk_column_index: u32,
1238}
1239#[derive(prost_helpers::AnyPB)]
1240#[derive(Clone, PartialEq, ::prost::Message)]
1241pub struct StreamCdcScanNode {
1242 #[prost(uint32, tag = "1", wrapper = "crate::id::TableId")]
1243 pub table_id: crate::id::TableId,
1244 #[prost(int32, repeated, tag = "2")]
1247 pub upstream_column_ids: ::prost::alloc::vec::Vec<i32>,
1248 #[prost(uint32, repeated, tag = "3")]
1250 pub output_indices: ::prost::alloc::vec::Vec<u32>,
1251 #[prost(message, optional, tag = "4")]
1253 pub state_table: ::core::option::Option<super::catalog::Table>,
1254 #[prost(message, optional, tag = "5")]
1256 pub cdc_table_desc: ::core::option::Option<super::plan_common::ExternalTableDesc>,
1257 #[prost(uint32, optional, tag = "6")]
1259 pub rate_limit: ::core::option::Option<u32>,
1260 #[prost(bool, tag = "7")]
1263 pub disable_backfill: bool,
1264 #[prost(message, optional, tag = "8")]
1265 pub options: ::core::option::Option<StreamCdcScanOptions>,
1266}
1267#[derive(prost_helpers::AnyPB)]
1271#[derive(Clone, PartialEq, ::prost::Message)]
1272pub struct BatchPlanNode {
1273 #[prost(message, optional, tag = "1")]
1274 pub table_desc: ::core::option::Option<super::plan_common::StorageTableDesc>,
1275 #[prost(int32, repeated, tag = "2")]
1276 pub column_ids: ::prost::alloc::vec::Vec<i32>,
1277}
1278#[derive(prost_helpers::AnyPB)]
1279#[derive(Clone, PartialEq, ::prost::Message)]
1280pub struct ArrangementInfo {
1281 #[prost(message, repeated, tag = "1")]
1284 pub arrange_key_orders: ::prost::alloc::vec::Vec<super::common::ColumnOrder>,
1285 #[prost(message, repeated, tag = "2")]
1287 pub column_descs: ::prost::alloc::vec::Vec<super::plan_common::ColumnDesc>,
1288 #[prost(message, optional, tag = "4")]
1290 pub table_desc: ::core::option::Option<super::plan_common::StorageTableDesc>,
1291 #[prost(uint32, repeated, tag = "5")]
1293 pub output_col_idx: ::prost::alloc::vec::Vec<u32>,
1294}
1295#[derive(prost_helpers::AnyPB)]
1298#[derive(Clone, PartialEq, ::prost::Message)]
1299pub struct ArrangeNode {
1300 #[prost(message, optional, tag = "1")]
1302 pub table_info: ::core::option::Option<ArrangementInfo>,
1303 #[prost(uint32, repeated, tag = "2")]
1305 pub distribution_key: ::prost::alloc::vec::Vec<u32>,
1306 #[prost(message, optional, tag = "3")]
1308 pub table: ::core::option::Option<super::catalog::Table>,
1309}
1310#[derive(prost_helpers::AnyPB)]
1312#[derive(Clone, PartialEq, ::prost::Message)]
1313pub struct LookupNode {
1314 #[prost(int32, repeated, tag = "1")]
1316 pub arrange_key: ::prost::alloc::vec::Vec<i32>,
1317 #[prost(int32, repeated, tag = "2")]
1319 pub stream_key: ::prost::alloc::vec::Vec<i32>,
1320 #[prost(bool, tag = "3")]
1322 pub use_current_epoch: bool,
1323 #[prost(int32, repeated, tag = "4")]
1327 pub column_mapping: ::prost::alloc::vec::Vec<i32>,
1328 #[prost(message, optional, tag = "7")]
1330 pub arrangement_table_info: ::core::option::Option<ArrangementInfo>,
1331 #[prost(oneof = "lookup_node::ArrangementTableId", tags = "5, 6")]
1332 pub arrangement_table_id: ::core::option::Option<lookup_node::ArrangementTableId>,
1333}
1334pub mod lookup_node {
1336 #[derive(prost_helpers::AnyPB)]
1337 #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Oneof)]
1338 pub enum ArrangementTableId {
1339 #[prost(uint32, tag = "5", wrapper = "crate::id::TableId")]
1341 TableId(crate::id::TableId),
1342 #[prost(uint32, tag = "6", wrapper = "crate::id::TableId")]
1344 IndexId(crate::id::TableId),
1345 }
1346}
1347#[derive(prost_helpers::AnyPB)]
1349#[derive(Clone, PartialEq, ::prost::Message)]
1350pub struct WatermarkFilterNode {
1351 #[prost(message, repeated, tag = "1")]
1353 pub watermark_descs: ::prost::alloc::vec::Vec<super::catalog::WatermarkDesc>,
1354 #[prost(message, repeated, tag = "2")]
1356 pub tables: ::prost::alloc::vec::Vec<super::catalog::Table>,
1357}
1358#[derive(prost_helpers::AnyPB)]
1360#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1361pub struct UnionNode {}
1362#[derive(prost_helpers::AnyPB)]
1364#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1365pub struct LookupUnionNode {
1366 #[prost(uint32, repeated, tag = "1")]
1367 pub order: ::prost::alloc::vec::Vec<u32>,
1368}
1369#[derive(prost_helpers::AnyPB)]
1370#[derive(Clone, PartialEq, ::prost::Message)]
1371pub struct ExpandNode {
1372 #[prost(message, repeated, tag = "1")]
1373 pub column_subsets: ::prost::alloc::vec::Vec<expand_node::Subset>,
1374}
1375pub mod expand_node {
1377 #[derive(prost_helpers::AnyPB)]
1378 #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1379 pub struct Subset {
1380 #[prost(uint32, repeated, tag = "1")]
1381 pub column_indices: ::prost::alloc::vec::Vec<u32>,
1382 }
1383}
1384#[derive(prost_helpers::AnyPB)]
1385#[derive(Clone, PartialEq, ::prost::Message)]
1386pub struct ProjectSetNode {
1387 #[prost(message, repeated, tag = "1")]
1388 pub select_list: ::prost::alloc::vec::Vec<super::expr::ProjectSetSelectItem>,
1389 #[prost(uint32, repeated, tag = "2")]
1393 pub watermark_input_cols: ::prost::alloc::vec::Vec<u32>,
1394 #[prost(uint32, repeated, tag = "3")]
1395 pub watermark_expr_indices: ::prost::alloc::vec::Vec<u32>,
1396 #[prost(uint32, repeated, tag = "4")]
1397 pub nondecreasing_exprs: ::prost::alloc::vec::Vec<u32>,
1398}
1399#[derive(prost_helpers::AnyPB)]
1401#[derive(Clone, PartialEq, ::prost::Message)]
1402pub struct SortNode {
1403 #[prost(message, optional, tag = "1")]
1405 pub state_table: ::core::option::Option<super::catalog::Table>,
1406 #[prost(uint32, tag = "2")]
1408 pub sort_column_index: u32,
1409}
1410#[derive(prost_helpers::AnyPB)]
1412#[derive(Clone, PartialEq, ::prost::Message)]
1413pub struct DmlNode {
1414 #[prost(uint32, tag = "1", wrapper = "crate::id::TableId")]
1416 pub table_id: crate::id::TableId,
1417 #[prost(uint64, tag = "3")]
1419 pub table_version_id: u64,
1420 #[prost(message, repeated, tag = "2")]
1422 pub column_descs: ::prost::alloc::vec::Vec<super::plan_common::ColumnDesc>,
1423 #[prost(uint32, optional, tag = "4")]
1424 pub rate_limit: ::core::option::Option<u32>,
1425}
1426#[derive(prost_helpers::AnyPB)]
1427#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1428pub struct RowIdGenNode {
1429 #[prost(uint64, tag = "1")]
1430 pub row_id_index: u64,
1431}
1432#[derive(prost_helpers::AnyPB)]
1433#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1434pub struct NowModeUpdateCurrent {}
1435#[derive(prost_helpers::AnyPB)]
1436#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1437pub struct NowModeGenerateSeries {
1438 #[prost(message, optional, tag = "1")]
1439 pub start_timestamp: ::core::option::Option<super::data::Datum>,
1440 #[prost(message, optional, tag = "2")]
1441 pub interval: ::core::option::Option<super::data::Datum>,
1442}
1443#[derive(prost_helpers::AnyPB)]
1444#[derive(Clone, PartialEq, ::prost::Message)]
1445pub struct NowNode {
1446 #[prost(message, optional, tag = "1")]
1448 pub state_table: ::core::option::Option<super::catalog::Table>,
1449 #[prost(oneof = "now_node::Mode", tags = "101, 102")]
1450 pub mode: ::core::option::Option<now_node::Mode>,
1451}
1452pub mod now_node {
1454 #[derive(prost_helpers::AnyPB)]
1455 #[derive(Clone, PartialEq, Eq, Hash, ::prost::Oneof)]
1456 pub enum Mode {
1457 #[prost(message, tag = "101")]
1458 UpdateCurrent(super::NowModeUpdateCurrent),
1459 #[prost(message, tag = "102")]
1460 GenerateSeries(super::NowModeGenerateSeries),
1461 }
1462}
1463#[derive(prost_helpers::AnyPB)]
1464#[derive(Clone, PartialEq, ::prost::Message)]
1465pub struct ValuesNode {
1466 #[prost(message, repeated, tag = "1")]
1467 pub tuples: ::prost::alloc::vec::Vec<values_node::ExprTuple>,
1468 #[prost(message, repeated, tag = "2")]
1469 pub fields: ::prost::alloc::vec::Vec<super::plan_common::Field>,
1470}
1471pub mod values_node {
1473 #[derive(prost_helpers::AnyPB)]
1474 #[derive(Clone, PartialEq, ::prost::Message)]
1475 pub struct ExprTuple {
1476 #[prost(message, repeated, tag = "1")]
1477 pub cells: ::prost::alloc::vec::Vec<super::super::expr::ExprNode>,
1478 }
1479}
1480#[derive(prost_helpers::AnyPB)]
1481#[derive(Clone, PartialEq, ::prost::Message)]
1482pub struct DedupNode {
1483 #[prost(message, optional, tag = "1")]
1484 pub state_table: ::core::option::Option<super::catalog::Table>,
1485 #[prost(uint32, repeated, tag = "2")]
1486 pub dedup_column_indices: ::prost::alloc::vec::Vec<u32>,
1487}
1488#[derive(prost_helpers::AnyPB)]
1489#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1490pub struct NoOpNode {}
1491#[derive(prost_helpers::AnyPB)]
1492#[derive(Clone, PartialEq, ::prost::Message)]
1493pub struct EowcOverWindowNode {
1494 #[prost(message, repeated, tag = "1")]
1495 pub calls: ::prost::alloc::vec::Vec<super::expr::WindowFunction>,
1496 #[prost(uint32, repeated, tag = "2")]
1497 pub partition_by: ::prost::alloc::vec::Vec<u32>,
1498 #[prost(message, repeated, tag = "3")]
1500 pub order_by: ::prost::alloc::vec::Vec<super::common::ColumnOrder>,
1501 #[prost(message, optional, tag = "4")]
1502 pub state_table: ::core::option::Option<super::catalog::Table>,
1503}
1504#[derive(prost_helpers::AnyPB)]
1505#[derive(Clone, PartialEq, ::prost::Message)]
1506pub struct OverWindowNode {
1507 #[prost(message, repeated, tag = "1")]
1508 pub calls: ::prost::alloc::vec::Vec<super::expr::WindowFunction>,
1509 #[prost(uint32, repeated, tag = "2")]
1510 pub partition_by: ::prost::alloc::vec::Vec<u32>,
1511 #[prost(message, repeated, tag = "3")]
1512 pub order_by: ::prost::alloc::vec::Vec<super::common::ColumnOrder>,
1513 #[prost(message, optional, tag = "4")]
1514 pub state_table: ::core::option::Option<super::catalog::Table>,
1515 #[deprecated]
1517 #[prost(enumeration = "OverWindowCachePolicy", tag = "5")]
1518 pub cache_policy: i32,
1519}
1520#[derive(prost_helpers::AnyPB)]
1521#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1522pub struct LocalApproxPercentileNode {
1523 #[prost(double, tag = "1")]
1524 pub base: f64,
1525 #[prost(uint32, tag = "2")]
1526 pub percentile_index: u32,
1527}
1528#[derive(prost_helpers::AnyPB)]
1529#[derive(Clone, PartialEq, ::prost::Message)]
1530pub struct GlobalApproxPercentileNode {
1531 #[prost(double, tag = "1")]
1532 pub base: f64,
1533 #[prost(double, tag = "2")]
1534 pub quantile: f64,
1535 #[prost(message, optional, tag = "3")]
1536 pub bucket_state_table: ::core::option::Option<super::catalog::Table>,
1537 #[prost(message, optional, tag = "4")]
1538 pub count_state_table: ::core::option::Option<super::catalog::Table>,
1539}
1540#[derive(prost_helpers::AnyPB)]
1541#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1542pub struct RowMergeNode {
1543 #[prost(message, optional, tag = "1")]
1544 pub lhs_mapping: ::core::option::Option<super::catalog::ColIndexMapping>,
1545 #[prost(message, optional, tag = "2")]
1546 pub rhs_mapping: ::core::option::Option<super::catalog::ColIndexMapping>,
1547}
1548#[derive(prost_helpers::AnyPB)]
1549#[derive(Clone, PartialEq, ::prost::Message)]
1550pub struct SyncLogStoreNode {
1551 #[prost(message, optional, tag = "1")]
1552 pub log_store_table: ::core::option::Option<super::catalog::Table>,
1553 #[deprecated]
1555 #[prost(uint32, optional, tag = "2")]
1556 pub pause_duration_ms: ::core::option::Option<u32>,
1557 #[deprecated]
1559 #[prost(uint32, optional, tag = "3")]
1560 pub buffer_size: ::core::option::Option<u32>,
1561 #[prost(bool, tag = "4")]
1562 pub aligned: bool,
1563}
1564#[derive(prost_helpers::AnyPB)]
1565#[derive(Clone, PartialEq, ::prost::Message)]
1566pub struct MaterializedExprsNode {
1567 #[prost(message, repeated, tag = "1")]
1568 pub exprs: ::prost::alloc::vec::Vec<super::expr::ExprNode>,
1569 #[prost(message, optional, tag = "2")]
1570 pub state_table: ::core::option::Option<super::catalog::Table>,
1571 #[prost(uint32, optional, tag = "3")]
1572 pub state_clean_col_idx: ::core::option::Option<u32>,
1573}
1574#[derive(prost_helpers::AnyPB)]
1575#[derive(Clone, PartialEq, ::prost::Message)]
1576pub struct VectorIndexWriteNode {
1577 #[prost(message, optional, tag = "1")]
1578 pub table: ::core::option::Option<super::catalog::Table>,
1579}
1580#[derive(prost_helpers::AnyPB)]
1581#[derive(Clone, PartialEq, ::prost::Message)]
1582pub struct VectorIndexLookupJoinNode {
1583 #[prost(message, optional, tag = "1")]
1584 pub reader_desc: ::core::option::Option<super::plan_common::VectorIndexReaderDesc>,
1585 #[prost(uint32, tag = "2")]
1586 pub vector_column_idx: u32,
1587}
1588#[derive(prost_helpers::AnyPB)]
1589#[derive(Clone, PartialEq, ::prost::Message)]
1590pub struct UpstreamSinkUnionNode {
1591 #[prost(message, repeated, tag = "1")]
1594 pub init_upstreams: ::prost::alloc::vec::Vec<UpstreamSinkInfo>,
1595}
1596#[derive(prost_helpers::AnyPB)]
1597#[derive(Clone, PartialEq, ::prost::Message)]
1598pub struct LocalityProviderNode {
1599 #[prost(uint32, repeated, tag = "1")]
1601 pub locality_columns: ::prost::alloc::vec::Vec<u32>,
1602 #[prost(message, optional, tag = "2")]
1604 pub state_table: ::core::option::Option<super::catalog::Table>,
1605 #[prost(message, optional, tag = "3")]
1607 pub progress_table: ::core::option::Option<super::catalog::Table>,
1608}
1609#[derive(prost_helpers::AnyPB)]
1610#[derive(Clone, PartialEq, ::prost::Message)]
1611pub struct EowcGapFillNode {
1612 #[prost(uint32, tag = "1")]
1613 pub time_column_index: u32,
1614 #[prost(message, optional, tag = "2")]
1615 pub interval: ::core::option::Option<super::expr::ExprNode>,
1616 #[prost(uint32, repeated, tag = "3")]
1617 pub fill_columns: ::prost::alloc::vec::Vec<u32>,
1618 #[prost(string, repeated, tag = "4")]
1619 pub fill_strategies: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1620 #[prost(message, optional, tag = "5")]
1621 pub buffer_table: ::core::option::Option<super::catalog::Table>,
1622 #[prost(message, optional, tag = "6")]
1623 pub prev_row_table: ::core::option::Option<super::catalog::Table>,
1624}
1625#[derive(prost_helpers::AnyPB)]
1626#[derive(Clone, PartialEq, ::prost::Message)]
1627pub struct GapFillNode {
1628 #[prost(uint32, tag = "1")]
1629 pub time_column_index: u32,
1630 #[prost(message, optional, tag = "2")]
1631 pub interval: ::core::option::Option<super::expr::ExprNode>,
1632 #[prost(uint32, repeated, tag = "3")]
1633 pub fill_columns: ::prost::alloc::vec::Vec<u32>,
1634 #[prost(string, repeated, tag = "4")]
1635 pub fill_strategies: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1636 #[prost(message, optional, tag = "5")]
1637 pub state_table: ::core::option::Option<super::catalog::Table>,
1638}
1639#[derive(prost_helpers::AnyPB)]
1640#[derive(Clone, PartialEq, ::prost::Message)]
1641pub struct StreamNode {
1642 #[prost(uint64, tag = "1", wrapper = "crate::id::StreamNodeLocalOperatorId")]
1645 pub operator_id: crate::id::StreamNodeLocalOperatorId,
1646 #[prost(message, repeated, tag = "3")]
1648 pub input: ::prost::alloc::vec::Vec<StreamNode>,
1649 #[prost(uint32, repeated, tag = "2")]
1650 pub stream_key: ::prost::alloc::vec::Vec<u32>,
1651 #[prost(enumeration = "stream_node::StreamKind", tag = "24")]
1652 pub stream_kind: i32,
1653 #[prost(string, tag = "18")]
1654 pub identity: ::prost::alloc::string::String,
1655 #[prost(message, repeated, tag = "19")]
1657 pub fields: ::prost::alloc::vec::Vec<super::plan_common::Field>,
1658 #[prost(
1659 oneof = "stream_node::NodeBody",
1660 tags = "100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155"
1661 )]
1662 pub node_body: ::core::option::Option<stream_node::NodeBody>,
1663}
1664pub mod stream_node {
1666 #[derive(prost_helpers::AnyPB)]
1669 #[derive(
1670 Clone,
1671 Copy,
1672 Debug,
1673 PartialEq,
1674 Eq,
1675 Hash,
1676 PartialOrd,
1677 Ord,
1678 ::prost::Enumeration
1679 )]
1680 #[repr(i32)]
1681 pub enum StreamKind {
1682 Retract = 0,
1684 AppendOnly = 1,
1685 Upsert = 2,
1686 }
1687 impl StreamKind {
1688 pub fn as_str_name(&self) -> &'static str {
1693 match self {
1694 Self::Retract => "STREAM_KIND_RETRACT",
1695 Self::AppendOnly => "STREAM_KIND_APPEND_ONLY",
1696 Self::Upsert => "STREAM_KIND_UPSERT",
1697 }
1698 }
1699 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1701 match value {
1702 "STREAM_KIND_RETRACT" => Some(Self::Retract),
1703 "STREAM_KIND_APPEND_ONLY" => Some(Self::AppendOnly),
1704 "STREAM_KIND_UPSERT" => Some(Self::Upsert),
1705 _ => None,
1706 }
1707 }
1708 }
1709 #[derive(prost_helpers::AnyPB)]
1710 #[derive(::enum_as_inner::EnumAsInner, ::strum::Display, ::strum::EnumDiscriminants)]
1711 #[strum_discriminants(derive(::strum::Display, Hash))]
1712 #[derive(Clone, PartialEq, ::prost::Oneof)]
1713 pub enum NodeBody {
1714 #[prost(message, tag = "100")]
1715 Source(::prost::alloc::boxed::Box<super::SourceNode>),
1716 #[prost(message, tag = "101")]
1717 Project(::prost::alloc::boxed::Box<super::ProjectNode>),
1718 #[prost(message, tag = "102")]
1719 Filter(::prost::alloc::boxed::Box<super::FilterNode>),
1720 #[prost(message, tag = "103")]
1721 Materialize(::prost::alloc::boxed::Box<super::MaterializeNode>),
1722 #[prost(message, tag = "104")]
1723 StatelessSimpleAgg(::prost::alloc::boxed::Box<super::SimpleAggNode>),
1724 #[prost(message, tag = "105")]
1725 SimpleAgg(::prost::alloc::boxed::Box<super::SimpleAggNode>),
1726 #[prost(message, tag = "106")]
1727 HashAgg(::prost::alloc::boxed::Box<super::HashAggNode>),
1728 #[prost(message, tag = "107")]
1729 AppendOnlyTopN(::prost::alloc::boxed::Box<super::TopNNode>),
1730 #[prost(message, tag = "108")]
1731 HashJoin(::prost::alloc::boxed::Box<super::HashJoinNode>),
1732 #[prost(message, tag = "109")]
1733 TopN(::prost::alloc::boxed::Box<super::TopNNode>),
1734 #[prost(message, tag = "110")]
1735 HopWindow(::prost::alloc::boxed::Box<super::HopWindowNode>),
1736 #[prost(message, tag = "111")]
1737 Merge(::prost::alloc::boxed::Box<super::MergeNode>),
1738 #[prost(message, tag = "112")]
1739 Exchange(::prost::alloc::boxed::Box<super::ExchangeNode>),
1740 #[prost(message, tag = "113")]
1741 StreamScan(::prost::alloc::boxed::Box<super::StreamScanNode>),
1742 #[prost(message, tag = "114")]
1743 BatchPlan(::prost::alloc::boxed::Box<super::BatchPlanNode>),
1744 #[prost(message, tag = "115")]
1745 Lookup(::prost::alloc::boxed::Box<super::LookupNode>),
1746 #[prost(message, tag = "116")]
1747 Arrange(::prost::alloc::boxed::Box<super::ArrangeNode>),
1748 #[prost(message, tag = "117")]
1749 LookupUnion(::prost::alloc::boxed::Box<super::LookupUnionNode>),
1750 #[prost(message, tag = "118")]
1751 Union(super::UnionNode),
1752 #[prost(message, tag = "119")]
1753 DeltaIndexJoin(::prost::alloc::boxed::Box<super::DeltaIndexJoinNode>),
1754 #[prost(message, tag = "120")]
1755 Sink(::prost::alloc::boxed::Box<super::SinkNode>),
1756 #[prost(message, tag = "121")]
1757 Expand(::prost::alloc::boxed::Box<super::ExpandNode>),
1758 #[prost(message, tag = "122")]
1759 DynamicFilter(::prost::alloc::boxed::Box<super::DynamicFilterNode>),
1760 #[prost(message, tag = "123")]
1761 ProjectSet(::prost::alloc::boxed::Box<super::ProjectSetNode>),
1762 #[prost(message, tag = "124")]
1763 GroupTopN(::prost::alloc::boxed::Box<super::GroupTopNNode>),
1764 #[prost(message, tag = "125")]
1765 Sort(::prost::alloc::boxed::Box<super::SortNode>),
1766 #[prost(message, tag = "126")]
1767 WatermarkFilter(::prost::alloc::boxed::Box<super::WatermarkFilterNode>),
1768 #[prost(message, tag = "127")]
1769 Dml(::prost::alloc::boxed::Box<super::DmlNode>),
1770 #[prost(message, tag = "128")]
1771 RowIdGen(::prost::alloc::boxed::Box<super::RowIdGenNode>),
1772 #[prost(message, tag = "129")]
1773 Now(::prost::alloc::boxed::Box<super::NowNode>),
1774 #[prost(message, tag = "130")]
1775 AppendOnlyGroupTopN(::prost::alloc::boxed::Box<super::GroupTopNNode>),
1776 #[prost(message, tag = "131")]
1777 TemporalJoin(::prost::alloc::boxed::Box<super::TemporalJoinNode>),
1778 #[prost(message, tag = "132")]
1779 BarrierRecv(::prost::alloc::boxed::Box<super::BarrierRecvNode>),
1780 #[prost(message, tag = "133")]
1781 Values(::prost::alloc::boxed::Box<super::ValuesNode>),
1782 #[prost(message, tag = "134")]
1783 AppendOnlyDedup(::prost::alloc::boxed::Box<super::DedupNode>),
1784 #[prost(message, tag = "135")]
1785 NoOp(super::NoOpNode),
1786 #[prost(message, tag = "136")]
1787 EowcOverWindow(::prost::alloc::boxed::Box<super::EowcOverWindowNode>),
1788 #[prost(message, tag = "137")]
1789 OverWindow(::prost::alloc::boxed::Box<super::OverWindowNode>),
1790 #[prost(message, tag = "138")]
1791 StreamFsFetch(::prost::alloc::boxed::Box<super::StreamFsFetchNode>),
1792 #[prost(message, tag = "139")]
1793 StreamCdcScan(::prost::alloc::boxed::Box<super::StreamCdcScanNode>),
1794 #[prost(message, tag = "140")]
1795 CdcFilter(::prost::alloc::boxed::Box<super::CdcFilterNode>),
1796 #[prost(message, tag = "142")]
1797 SourceBackfill(::prost::alloc::boxed::Box<super::SourceBackfillNode>),
1798 #[prost(message, tag = "143")]
1799 Changelog(::prost::alloc::boxed::Box<super::ChangeLogNode>),
1800 #[prost(message, tag = "144")]
1801 LocalApproxPercentile(
1802 ::prost::alloc::boxed::Box<super::LocalApproxPercentileNode>,
1803 ),
1804 #[prost(message, tag = "145")]
1805 GlobalApproxPercentile(
1806 ::prost::alloc::boxed::Box<super::GlobalApproxPercentileNode>,
1807 ),
1808 #[prost(message, tag = "146")]
1809 RowMerge(::prost::alloc::boxed::Box<super::RowMergeNode>),
1810 #[prost(message, tag = "147")]
1811 AsOfJoin(::prost::alloc::boxed::Box<super::AsOfJoinNode>),
1812 #[prost(message, tag = "148")]
1813 SyncLogStore(::prost::alloc::boxed::Box<super::SyncLogStoreNode>),
1814 #[prost(message, tag = "149")]
1815 MaterializedExprs(::prost::alloc::boxed::Box<super::MaterializedExprsNode>),
1816 #[prost(message, tag = "150")]
1817 VectorIndexWrite(::prost::alloc::boxed::Box<super::VectorIndexWriteNode>),
1818 #[prost(message, tag = "151")]
1819 UpstreamSinkUnion(::prost::alloc::boxed::Box<super::UpstreamSinkUnionNode>),
1820 #[prost(message, tag = "152")]
1821 LocalityProvider(::prost::alloc::boxed::Box<super::LocalityProviderNode>),
1822 #[prost(message, tag = "153")]
1823 EowcGapFill(::prost::alloc::boxed::Box<super::EowcGapFillNode>),
1824 #[prost(message, tag = "154")]
1825 GapFill(::prost::alloc::boxed::Box<super::GapFillNode>),
1826 #[prost(message, tag = "155")]
1827 VectorIndexLookupJoin(
1828 ::prost::alloc::boxed::Box<super::VectorIndexLookupJoinNode>,
1829 ),
1830 }
1831}
1832#[derive(prost_helpers::AnyPB)]
1846#[derive(Clone, PartialEq, ::prost::Message)]
1847pub struct DispatchOutputMapping {
1848 #[prost(uint32, repeated, tag = "1")]
1850 pub indices: ::prost::alloc::vec::Vec<u32>,
1851 #[prost(message, repeated, tag = "2")]
1857 pub types: ::prost::alloc::vec::Vec<dispatch_output_mapping::TypePair>,
1858}
1859pub mod dispatch_output_mapping {
1861 #[derive(prost_helpers::AnyPB)]
1862 #[derive(Clone, PartialEq, ::prost::Message)]
1863 pub struct TypePair {
1864 #[prost(message, optional, tag = "1")]
1865 pub upstream: ::core::option::Option<super::super::data::DataType>,
1866 #[prost(message, optional, tag = "2")]
1867 pub downstream: ::core::option::Option<super::super::data::DataType>,
1868 }
1869}
1870#[derive(prost_helpers::AnyPB)]
1873#[derive(Clone, PartialEq, ::prost::Message)]
1874pub struct DispatchStrategy {
1875 #[prost(enumeration = "DispatcherType", tag = "1")]
1876 pub r#type: i32,
1877 #[prost(uint32, repeated, tag = "2")]
1878 pub dist_key_indices: ::prost::alloc::vec::Vec<u32>,
1879 #[prost(message, optional, tag = "3")]
1880 pub output_mapping: ::core::option::Option<DispatchOutputMapping>,
1881}
1882#[derive(prost_helpers::AnyPB)]
1885#[derive(Clone, PartialEq, ::prost::Message)]
1886pub struct Dispatcher {
1887 #[prost(enumeration = "DispatcherType", tag = "1")]
1888 pub r#type: i32,
1889 #[prost(uint32, repeated, tag = "2")]
1892 pub dist_key_indices: ::prost::alloc::vec::Vec<u32>,
1893 #[prost(message, optional, tag = "6")]
1895 pub output_mapping: ::core::option::Option<DispatchOutputMapping>,
1896 #[prost(message, optional, tag = "3")]
1899 pub hash_mapping: ::core::option::Option<ActorMapping>,
1900 #[prost(uint32, tag = "4", wrapper = "crate::id::FragmentId")]
1903 pub dispatcher_id: crate::id::FragmentId,
1904 #[prost(uint32, repeated, tag = "5", wrapper = "crate::id::ActorId")]
1906 pub downstream_actor_id: ::prost::alloc::vec::Vec<crate::id::ActorId>,
1907}
1908#[derive(prost_helpers::AnyPB)]
1910#[derive(Clone, PartialEq, ::prost::Message)]
1911pub struct StreamActor {
1912 #[prost(uint32, tag = "1", wrapper = "crate::id::ActorId")]
1913 pub actor_id: crate::id::ActorId,
1914 #[prost(uint32, tag = "2", wrapper = "crate::id::FragmentId")]
1915 pub fragment_id: crate::id::FragmentId,
1916 #[prost(message, repeated, tag = "4")]
1917 pub dispatcher: ::prost::alloc::vec::Vec<Dispatcher>,
1918 #[prost(message, optional, tag = "8")]
1921 pub vnode_bitmap: ::core::option::Option<super::common::Buffer>,
1922 #[prost(string, tag = "9")]
1924 pub mview_definition: ::prost::alloc::string::String,
1925 #[prost(message, optional, tag = "10")]
1927 pub expr_context: ::core::option::Option<super::plan_common::ExprContext>,
1928 #[prost(string, tag = "11")]
1930 pub config_override: ::prost::alloc::string::String,
1931}
1932#[derive(prost_helpers::AnyPB)]
1934#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1935pub struct StreamContext {
1936 #[prost(string, tag = "1")]
1938 pub timezone: ::prost::alloc::string::String,
1939 #[prost(string, tag = "2")]
1941 pub config_override: ::prost::alloc::string::String,
1942 #[prost(string, tag = "3")]
1944 pub adaptive_parallelism_strategy: ::prost::alloc::string::String,
1945}
1946#[derive(prost_helpers::AnyPB)]
1947#[derive(Clone, PartialEq, ::prost::Message)]
1948pub struct BackfillOrder {
1949 #[prost(map = "uint32, message", tag = "1", wrapper = "crate::id::RelationId")]
1950 pub order: ::std::collections::HashMap<
1951 crate::id::RelationId,
1952 super::common::Uint32Vector,
1953 >,
1954}
1955#[derive(prost_helpers::AnyPB)]
1960#[derive(Clone, PartialEq, ::prost::Message)]
1961pub struct StreamFragmentGraph {
1962 #[prost(map = "uint32, message", tag = "1", wrapper = "crate::id::FragmentId")]
1964 pub fragments: ::std::collections::HashMap<
1965 crate::id::FragmentId,
1966 stream_fragment_graph::StreamFragment,
1967 >,
1968 #[prost(message, repeated, tag = "2")]
1970 pub edges: ::prost::alloc::vec::Vec<stream_fragment_graph::StreamFragmentEdge>,
1971 #[prost(uint32, repeated, tag = "3", wrapper = "crate::id::TableId")]
1972 pub dependent_table_ids: ::prost::alloc::vec::Vec<crate::id::TableId>,
1973 #[prost(uint32, tag = "4")]
1974 pub table_ids_cnt: u32,
1975 #[prost(message, optional, tag = "5")]
1976 pub ctx: ::core::option::Option<StreamContext>,
1977 #[prost(message, optional, tag = "6")]
1979 pub parallelism: ::core::option::Option<stream_fragment_graph::Parallelism>,
1980 #[prost(message, optional, tag = "9")]
1982 pub backfill_parallelism: ::core::option::Option<stream_fragment_graph::Parallelism>,
1983 #[prost(uint32, tag = "7")]
1993 pub max_parallelism: u32,
1994 #[prost(message, optional, tag = "8")]
1996 pub backfill_order: ::core::option::Option<BackfillOrder>,
1997}
1998pub mod stream_fragment_graph {
2000 #[derive(prost_helpers::AnyPB)]
2001 #[derive(Clone, PartialEq, ::prost::Message)]
2002 pub struct StreamFragment {
2003 #[prost(uint32, tag = "1", wrapper = "crate::id::FragmentId")]
2005 pub fragment_id: crate::id::FragmentId,
2006 #[prost(message, optional, tag = "2")]
2008 pub node: ::core::option::Option<super::StreamNode>,
2009 #[prost(uint32, tag = "3")]
2011 pub fragment_type_mask: u32,
2012 #[prost(bool, tag = "4")]
2016 pub requires_singleton: bool,
2017 }
2018 #[derive(prost_helpers::AnyPB)]
2019 #[derive(Clone, PartialEq, ::prost::Message)]
2020 pub struct StreamFragmentEdge {
2021 #[prost(message, optional, tag = "1")]
2023 pub dispatch_strategy: ::core::option::Option<super::DispatchStrategy>,
2024 #[prost(uint64, tag = "3")]
2028 pub link_id: u64,
2029 #[prost(uint32, tag = "4", wrapper = "crate::id::FragmentId")]
2030 pub upstream_id: crate::id::FragmentId,
2031 #[prost(uint32, tag = "5", wrapper = "crate::id::FragmentId")]
2032 pub downstream_id: crate::id::FragmentId,
2033 }
2034 #[derive(prost_helpers::AnyPB)]
2035 #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2036 pub struct Parallelism {
2037 #[prost(uint64, tag = "1")]
2038 pub parallelism: u64,
2039 }
2040}
2041#[derive(prost_helpers::AnyPB)]
2043#[derive(Clone, PartialEq, ::prost::Message)]
2044pub struct SinkSchemaChange {
2045 #[prost(message, repeated, tag = "1")]
2048 pub original_schema: ::prost::alloc::vec::Vec<super::plan_common::Field>,
2049 #[prost(oneof = "sink_schema_change::Op", tags = "2, 3")]
2051 pub op: ::core::option::Option<sink_schema_change::Op>,
2052}
2053pub mod sink_schema_change {
2055 #[derive(prost_helpers::AnyPB)]
2057 #[derive(Clone, PartialEq, ::prost::Oneof)]
2058 pub enum Op {
2059 #[prost(message, tag = "2")]
2061 AddColumns(super::SinkAddColumnsOp),
2062 #[prost(message, tag = "3")]
2064 DropColumns(super::SinkDropColumnsOp),
2065 }
2066}
2067#[derive(prost_helpers::AnyPB)]
2069#[derive(Clone, PartialEq, ::prost::Message)]
2070pub struct SinkAddColumnsOp {
2071 #[prost(message, repeated, tag = "1")]
2073 pub fields: ::prost::alloc::vec::Vec<super::plan_common::Field>,
2074}
2075#[derive(prost_helpers::AnyPB)]
2077#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2078pub struct SinkDropColumnsOp {
2079 #[prost(string, repeated, tag = "1")]
2081 pub column_names: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2082}
2083#[derive(prost_helpers::AnyPB)]
2084#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2085#[repr(i32)]
2086pub enum SinkLogStoreType {
2087 Unspecified = 0,
2089 KvLogStore = 1,
2090 InMemoryLogStore = 2,
2091}
2092impl SinkLogStoreType {
2093 pub fn as_str_name(&self) -> &'static str {
2098 match self {
2099 Self::Unspecified => "SINK_LOG_STORE_TYPE_UNSPECIFIED",
2100 Self::KvLogStore => "SINK_LOG_STORE_TYPE_KV_LOG_STORE",
2101 Self::InMemoryLogStore => "SINK_LOG_STORE_TYPE_IN_MEMORY_LOG_STORE",
2102 }
2103 }
2104 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2106 match value {
2107 "SINK_LOG_STORE_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
2108 "SINK_LOG_STORE_TYPE_KV_LOG_STORE" => Some(Self::KvLogStore),
2109 "SINK_LOG_STORE_TYPE_IN_MEMORY_LOG_STORE" => Some(Self::InMemoryLogStore),
2110 _ => None,
2111 }
2112 }
2113}
2114#[derive(prost_helpers::AnyPB)]
2115#[derive(prost_helpers::Version)]
2116#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2117#[repr(i32)]
2118pub enum AggNodeVersion {
2119 Unspecified = 0,
2120 Issue12140 = 1,
2122 Issue13465 = 2,
2124}
2125impl AggNodeVersion {
2126 pub fn as_str_name(&self) -> &'static str {
2131 match self {
2132 Self::Unspecified => "AGG_NODE_VERSION_UNSPECIFIED",
2133 Self::Issue12140 => "AGG_NODE_VERSION_ISSUE_12140",
2134 Self::Issue13465 => "AGG_NODE_VERSION_ISSUE_13465",
2135 }
2136 }
2137 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2139 match value {
2140 "AGG_NODE_VERSION_UNSPECIFIED" => Some(Self::Unspecified),
2141 "AGG_NODE_VERSION_ISSUE_12140" => Some(Self::Issue12140),
2142 "AGG_NODE_VERSION_ISSUE_13465" => Some(Self::Issue13465),
2143 _ => None,
2144 }
2145 }
2146}
2147#[derive(prost_helpers::AnyPB)]
2148#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2149#[repr(i32)]
2150pub enum InequalityType {
2151 Unspecified = 0,
2152 LessThan = 1,
2153 LessThanOrEqual = 2,
2154 GreaterThan = 3,
2155 GreaterThanOrEqual = 4,
2156}
2157impl InequalityType {
2158 pub fn as_str_name(&self) -> &'static str {
2163 match self {
2164 Self::Unspecified => "INEQUALITY_TYPE_UNSPECIFIED",
2165 Self::LessThan => "INEQUALITY_TYPE_LESS_THAN",
2166 Self::LessThanOrEqual => "INEQUALITY_TYPE_LESS_THAN_OR_EQUAL",
2167 Self::GreaterThan => "INEQUALITY_TYPE_GREATER_THAN",
2168 Self::GreaterThanOrEqual => "INEQUALITY_TYPE_GREATER_THAN_OR_EQUAL",
2169 }
2170 }
2171 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2173 match value {
2174 "INEQUALITY_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
2175 "INEQUALITY_TYPE_LESS_THAN" => Some(Self::LessThan),
2176 "INEQUALITY_TYPE_LESS_THAN_OR_EQUAL" => Some(Self::LessThanOrEqual),
2177 "INEQUALITY_TYPE_GREATER_THAN" => Some(Self::GreaterThan),
2178 "INEQUALITY_TYPE_GREATER_THAN_OR_EQUAL" => Some(Self::GreaterThanOrEqual),
2179 _ => None,
2180 }
2181 }
2182}
2183#[derive(prost_helpers::AnyPB)]
2184#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2185#[repr(i32)]
2186pub enum JoinEncodingType {
2187 Unspecified = 0,
2188 MemoryOptimized = 1,
2189 CpuOptimized = 2,
2190}
2191impl JoinEncodingType {
2192 pub fn as_str_name(&self) -> &'static str {
2197 match self {
2198 Self::Unspecified => "UNSPECIFIED",
2199 Self::MemoryOptimized => "MEMORY_OPTIMIZED",
2200 Self::CpuOptimized => "CPU_OPTIMIZED",
2201 }
2202 }
2203 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2205 match value {
2206 "UNSPECIFIED" => Some(Self::Unspecified),
2207 "MEMORY_OPTIMIZED" => Some(Self::MemoryOptimized),
2208 "CPU_OPTIMIZED" => Some(Self::CpuOptimized),
2209 _ => None,
2210 }
2211 }
2212}
2213#[derive(prost_helpers::AnyPB)]
2215#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2216#[repr(i32)]
2217pub enum StreamScanType {
2218 Unspecified = 0,
2219 Chain = 1,
2221 Rearrange = 2,
2223 Backfill = 3,
2225 UpstreamOnly = 4,
2227 ArrangementBackfill = 5,
2229 SnapshotBackfill = 6,
2231 CrossDbSnapshotBackfill = 7,
2233}
2234impl StreamScanType {
2235 pub fn as_str_name(&self) -> &'static str {
2240 match self {
2241 Self::Unspecified => "STREAM_SCAN_TYPE_UNSPECIFIED",
2242 Self::Chain => "STREAM_SCAN_TYPE_CHAIN",
2243 Self::Rearrange => "STREAM_SCAN_TYPE_REARRANGE",
2244 Self::Backfill => "STREAM_SCAN_TYPE_BACKFILL",
2245 Self::UpstreamOnly => "STREAM_SCAN_TYPE_UPSTREAM_ONLY",
2246 Self::ArrangementBackfill => "STREAM_SCAN_TYPE_ARRANGEMENT_BACKFILL",
2247 Self::SnapshotBackfill => "STREAM_SCAN_TYPE_SNAPSHOT_BACKFILL",
2248 Self::CrossDbSnapshotBackfill => {
2249 "STREAM_SCAN_TYPE_CROSS_DB_SNAPSHOT_BACKFILL"
2250 }
2251 }
2252 }
2253 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2255 match value {
2256 "STREAM_SCAN_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
2257 "STREAM_SCAN_TYPE_CHAIN" => Some(Self::Chain),
2258 "STREAM_SCAN_TYPE_REARRANGE" => Some(Self::Rearrange),
2259 "STREAM_SCAN_TYPE_BACKFILL" => Some(Self::Backfill),
2260 "STREAM_SCAN_TYPE_UPSTREAM_ONLY" => Some(Self::UpstreamOnly),
2261 "STREAM_SCAN_TYPE_ARRANGEMENT_BACKFILL" => Some(Self::ArrangementBackfill),
2262 "STREAM_SCAN_TYPE_SNAPSHOT_BACKFILL" => Some(Self::SnapshotBackfill),
2263 "STREAM_SCAN_TYPE_CROSS_DB_SNAPSHOT_BACKFILL" => {
2264 Some(Self::CrossDbSnapshotBackfill)
2265 }
2266 _ => None,
2267 }
2268 }
2269}
2270#[derive(prost_helpers::AnyPB)]
2271#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2272#[repr(i32)]
2273pub enum OverWindowCachePolicy {
2274 Unspecified = 0,
2275 Full = 1,
2276 Recent = 2,
2277 RecentFirstN = 3,
2278 RecentLastN = 4,
2279}
2280impl OverWindowCachePolicy {
2281 pub fn as_str_name(&self) -> &'static str {
2286 match self {
2287 Self::Unspecified => "OVER_WINDOW_CACHE_POLICY_UNSPECIFIED",
2288 Self::Full => "OVER_WINDOW_CACHE_POLICY_FULL",
2289 Self::Recent => "OVER_WINDOW_CACHE_POLICY_RECENT",
2290 Self::RecentFirstN => "OVER_WINDOW_CACHE_POLICY_RECENT_FIRST_N",
2291 Self::RecentLastN => "OVER_WINDOW_CACHE_POLICY_RECENT_LAST_N",
2292 }
2293 }
2294 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2296 match value {
2297 "OVER_WINDOW_CACHE_POLICY_UNSPECIFIED" => Some(Self::Unspecified),
2298 "OVER_WINDOW_CACHE_POLICY_FULL" => Some(Self::Full),
2299 "OVER_WINDOW_CACHE_POLICY_RECENT" => Some(Self::Recent),
2300 "OVER_WINDOW_CACHE_POLICY_RECENT_FIRST_N" => Some(Self::RecentFirstN),
2301 "OVER_WINDOW_CACHE_POLICY_RECENT_LAST_N" => Some(Self::RecentLastN),
2302 _ => None,
2303 }
2304 }
2305}
2306#[derive(prost_helpers::AnyPB)]
2307#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2308#[repr(i32)]
2309pub enum DispatcherType {
2310 Unspecified = 0,
2311 Hash = 1,
2313 Broadcast = 2,
2318 Simple = 3,
2320 NoShuffle = 4,
2324}
2325impl DispatcherType {
2326 pub fn as_str_name(&self) -> &'static str {
2331 match self {
2332 Self::Unspecified => "DISPATCHER_TYPE_UNSPECIFIED",
2333 Self::Hash => "DISPATCHER_TYPE_HASH",
2334 Self::Broadcast => "DISPATCHER_TYPE_BROADCAST",
2335 Self::Simple => "DISPATCHER_TYPE_SIMPLE",
2336 Self::NoShuffle => "DISPATCHER_TYPE_NO_SHUFFLE",
2337 }
2338 }
2339 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2341 match value {
2342 "DISPATCHER_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
2343 "DISPATCHER_TYPE_HASH" => Some(Self::Hash),
2344 "DISPATCHER_TYPE_BROADCAST" => Some(Self::Broadcast),
2345 "DISPATCHER_TYPE_SIMPLE" => Some(Self::Simple),
2346 "DISPATCHER_TYPE_NO_SHUFFLE" => Some(Self::NoShuffle),
2347 _ => None,
2348 }
2349 }
2350}