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 #[prost(message, optional, tag = "5")]
1506 pub intermediate_state_table: ::core::option::Option<super::catalog::Table>,
1507}
1508#[derive(prost_helpers::AnyPB)]
1509#[derive(Clone, PartialEq, ::prost::Message)]
1510pub struct OverWindowNode {
1511 #[prost(message, repeated, tag = "1")]
1512 pub calls: ::prost::alloc::vec::Vec<super::expr::WindowFunction>,
1513 #[prost(uint32, repeated, tag = "2")]
1514 pub partition_by: ::prost::alloc::vec::Vec<u32>,
1515 #[prost(message, repeated, tag = "3")]
1516 pub order_by: ::prost::alloc::vec::Vec<super::common::ColumnOrder>,
1517 #[prost(message, optional, tag = "4")]
1518 pub state_table: ::core::option::Option<super::catalog::Table>,
1519 #[deprecated]
1521 #[prost(enumeration = "OverWindowCachePolicy", tag = "5")]
1522 pub cache_policy: i32,
1523}
1524#[derive(prost_helpers::AnyPB)]
1525#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1526pub struct LocalApproxPercentileNode {
1527 #[prost(double, tag = "1")]
1528 pub base: f64,
1529 #[prost(uint32, tag = "2")]
1530 pub percentile_index: u32,
1531}
1532#[derive(prost_helpers::AnyPB)]
1533#[derive(Clone, PartialEq, ::prost::Message)]
1534pub struct GlobalApproxPercentileNode {
1535 #[prost(double, tag = "1")]
1536 pub base: f64,
1537 #[prost(double, tag = "2")]
1538 pub quantile: f64,
1539 #[prost(message, optional, tag = "3")]
1540 pub bucket_state_table: ::core::option::Option<super::catalog::Table>,
1541 #[prost(message, optional, tag = "4")]
1542 pub count_state_table: ::core::option::Option<super::catalog::Table>,
1543}
1544#[derive(prost_helpers::AnyPB)]
1545#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1546pub struct RowMergeNode {
1547 #[prost(message, optional, tag = "1")]
1548 pub lhs_mapping: ::core::option::Option<super::catalog::ColIndexMapping>,
1549 #[prost(message, optional, tag = "2")]
1550 pub rhs_mapping: ::core::option::Option<super::catalog::ColIndexMapping>,
1551}
1552#[derive(prost_helpers::AnyPB)]
1553#[derive(Clone, PartialEq, ::prost::Message)]
1554pub struct SyncLogStoreNode {
1555 #[prost(message, optional, tag = "1")]
1556 pub log_store_table: ::core::option::Option<super::catalog::Table>,
1557 #[deprecated]
1559 #[prost(uint32, optional, tag = "2")]
1560 pub pause_duration_ms: ::core::option::Option<u32>,
1561 #[deprecated]
1563 #[prost(uint32, optional, tag = "3")]
1564 pub buffer_size: ::core::option::Option<u32>,
1565 #[prost(bool, tag = "4")]
1566 pub aligned: bool,
1567}
1568#[derive(prost_helpers::AnyPB)]
1569#[derive(Clone, PartialEq, ::prost::Message)]
1570pub struct MaterializedExprsNode {
1571 #[prost(message, repeated, tag = "1")]
1572 pub exprs: ::prost::alloc::vec::Vec<super::expr::ExprNode>,
1573 #[prost(message, optional, tag = "2")]
1574 pub state_table: ::core::option::Option<super::catalog::Table>,
1575 #[prost(uint32, optional, tag = "3")]
1576 pub state_clean_col_idx: ::core::option::Option<u32>,
1577}
1578#[derive(prost_helpers::AnyPB)]
1579#[derive(Clone, PartialEq, ::prost::Message)]
1580pub struct VectorIndexWriteNode {
1581 #[prost(message, optional, tag = "1")]
1582 pub table: ::core::option::Option<super::catalog::Table>,
1583}
1584#[derive(prost_helpers::AnyPB)]
1585#[derive(Clone, PartialEq, ::prost::Message)]
1586pub struct VectorIndexLookupJoinNode {
1587 #[prost(message, optional, tag = "1")]
1588 pub reader_desc: ::core::option::Option<super::plan_common::VectorIndexReaderDesc>,
1589 #[prost(uint32, tag = "2")]
1590 pub vector_column_idx: u32,
1591}
1592#[derive(prost_helpers::AnyPB)]
1593#[derive(Clone, PartialEq, ::prost::Message)]
1594pub struct UpstreamSinkUnionNode {
1595 #[prost(message, repeated, tag = "1")]
1598 pub init_upstreams: ::prost::alloc::vec::Vec<UpstreamSinkInfo>,
1599}
1600#[derive(prost_helpers::AnyPB)]
1601#[derive(Clone, PartialEq, ::prost::Message)]
1602pub struct LocalityProviderNode {
1603 #[prost(uint32, repeated, tag = "1")]
1605 pub locality_columns: ::prost::alloc::vec::Vec<u32>,
1606 #[prost(message, optional, tag = "2")]
1608 pub state_table: ::core::option::Option<super::catalog::Table>,
1609 #[prost(message, optional, tag = "3")]
1611 pub progress_table: ::core::option::Option<super::catalog::Table>,
1612}
1613#[derive(prost_helpers::AnyPB)]
1614#[derive(Clone, PartialEq, ::prost::Message)]
1615pub struct EowcGapFillNode {
1616 #[prost(uint32, tag = "1")]
1617 pub time_column_index: u32,
1618 #[prost(message, optional, tag = "2")]
1619 pub interval: ::core::option::Option<super::expr::ExprNode>,
1620 #[prost(uint32, repeated, tag = "3")]
1621 pub fill_columns: ::prost::alloc::vec::Vec<u32>,
1622 #[prost(string, repeated, tag = "4")]
1623 pub fill_strategies: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1624 #[prost(message, optional, tag = "5")]
1625 pub buffer_table: ::core::option::Option<super::catalog::Table>,
1626 #[prost(message, optional, tag = "6")]
1627 pub prev_row_table: ::core::option::Option<super::catalog::Table>,
1628}
1629#[derive(prost_helpers::AnyPB)]
1630#[derive(Clone, PartialEq, ::prost::Message)]
1631pub struct GapFillNode {
1632 #[prost(uint32, tag = "1")]
1633 pub time_column_index: u32,
1634 #[prost(message, optional, tag = "2")]
1635 pub interval: ::core::option::Option<super::expr::ExprNode>,
1636 #[prost(uint32, repeated, tag = "3")]
1637 pub fill_columns: ::prost::alloc::vec::Vec<u32>,
1638 #[prost(string, repeated, tag = "4")]
1639 pub fill_strategies: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1640 #[prost(message, optional, tag = "5")]
1641 pub state_table: ::core::option::Option<super::catalog::Table>,
1642}
1643#[derive(prost_helpers::AnyPB)]
1644#[derive(Clone, PartialEq, ::prost::Message)]
1645pub struct StreamNode {
1646 #[prost(uint64, tag = "1", wrapper = "crate::id::StreamNodeLocalOperatorId")]
1649 pub operator_id: crate::id::StreamNodeLocalOperatorId,
1650 #[prost(message, repeated, tag = "3")]
1652 pub input: ::prost::alloc::vec::Vec<StreamNode>,
1653 #[prost(uint32, repeated, tag = "2")]
1654 pub stream_key: ::prost::alloc::vec::Vec<u32>,
1655 #[prost(enumeration = "stream_node::StreamKind", tag = "24")]
1656 pub stream_kind: i32,
1657 #[prost(string, tag = "18")]
1658 pub identity: ::prost::alloc::string::String,
1659 #[prost(message, repeated, tag = "19")]
1661 pub fields: ::prost::alloc::vec::Vec<super::plan_common::Field>,
1662 #[prost(
1663 oneof = "stream_node::NodeBody",
1664 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"
1665 )]
1666 pub node_body: ::core::option::Option<stream_node::NodeBody>,
1667}
1668pub mod stream_node {
1670 #[derive(prost_helpers::AnyPB)]
1673 #[derive(
1674 Clone,
1675 Copy,
1676 Debug,
1677 PartialEq,
1678 Eq,
1679 Hash,
1680 PartialOrd,
1681 Ord,
1682 ::prost::Enumeration
1683 )]
1684 #[repr(i32)]
1685 pub enum StreamKind {
1686 Retract = 0,
1688 AppendOnly = 1,
1689 Upsert = 2,
1690 }
1691 impl StreamKind {
1692 pub fn as_str_name(&self) -> &'static str {
1697 match self {
1698 Self::Retract => "STREAM_KIND_RETRACT",
1699 Self::AppendOnly => "STREAM_KIND_APPEND_ONLY",
1700 Self::Upsert => "STREAM_KIND_UPSERT",
1701 }
1702 }
1703 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1705 match value {
1706 "STREAM_KIND_RETRACT" => Some(Self::Retract),
1707 "STREAM_KIND_APPEND_ONLY" => Some(Self::AppendOnly),
1708 "STREAM_KIND_UPSERT" => Some(Self::Upsert),
1709 _ => None,
1710 }
1711 }
1712 }
1713 #[derive(prost_helpers::AnyPB)]
1714 #[derive(::enum_as_inner::EnumAsInner, ::strum::Display, ::strum::EnumDiscriminants)]
1715 #[strum_discriminants(derive(::strum::Display, Hash))]
1716 #[derive(Clone, PartialEq, ::prost::Oneof)]
1717 pub enum NodeBody {
1718 #[prost(message, tag = "100")]
1719 Source(::prost::alloc::boxed::Box<super::SourceNode>),
1720 #[prost(message, tag = "101")]
1721 Project(::prost::alloc::boxed::Box<super::ProjectNode>),
1722 #[prost(message, tag = "102")]
1723 Filter(::prost::alloc::boxed::Box<super::FilterNode>),
1724 #[prost(message, tag = "103")]
1725 Materialize(::prost::alloc::boxed::Box<super::MaterializeNode>),
1726 #[prost(message, tag = "104")]
1727 StatelessSimpleAgg(::prost::alloc::boxed::Box<super::SimpleAggNode>),
1728 #[prost(message, tag = "105")]
1729 SimpleAgg(::prost::alloc::boxed::Box<super::SimpleAggNode>),
1730 #[prost(message, tag = "106")]
1731 HashAgg(::prost::alloc::boxed::Box<super::HashAggNode>),
1732 #[prost(message, tag = "107")]
1733 AppendOnlyTopN(::prost::alloc::boxed::Box<super::TopNNode>),
1734 #[prost(message, tag = "108")]
1735 HashJoin(::prost::alloc::boxed::Box<super::HashJoinNode>),
1736 #[prost(message, tag = "109")]
1737 TopN(::prost::alloc::boxed::Box<super::TopNNode>),
1738 #[prost(message, tag = "110")]
1739 HopWindow(::prost::alloc::boxed::Box<super::HopWindowNode>),
1740 #[prost(message, tag = "111")]
1741 Merge(::prost::alloc::boxed::Box<super::MergeNode>),
1742 #[prost(message, tag = "112")]
1743 Exchange(::prost::alloc::boxed::Box<super::ExchangeNode>),
1744 #[prost(message, tag = "113")]
1745 StreamScan(::prost::alloc::boxed::Box<super::StreamScanNode>),
1746 #[prost(message, tag = "114")]
1747 BatchPlan(::prost::alloc::boxed::Box<super::BatchPlanNode>),
1748 #[prost(message, tag = "115")]
1749 Lookup(::prost::alloc::boxed::Box<super::LookupNode>),
1750 #[prost(message, tag = "116")]
1751 Arrange(::prost::alloc::boxed::Box<super::ArrangeNode>),
1752 #[prost(message, tag = "117")]
1753 LookupUnion(::prost::alloc::boxed::Box<super::LookupUnionNode>),
1754 #[prost(message, tag = "118")]
1755 Union(super::UnionNode),
1756 #[prost(message, tag = "119")]
1757 DeltaIndexJoin(::prost::alloc::boxed::Box<super::DeltaIndexJoinNode>),
1758 #[prost(message, tag = "120")]
1759 Sink(::prost::alloc::boxed::Box<super::SinkNode>),
1760 #[prost(message, tag = "121")]
1761 Expand(::prost::alloc::boxed::Box<super::ExpandNode>),
1762 #[prost(message, tag = "122")]
1763 DynamicFilter(::prost::alloc::boxed::Box<super::DynamicFilterNode>),
1764 #[prost(message, tag = "123")]
1765 ProjectSet(::prost::alloc::boxed::Box<super::ProjectSetNode>),
1766 #[prost(message, tag = "124")]
1767 GroupTopN(::prost::alloc::boxed::Box<super::GroupTopNNode>),
1768 #[prost(message, tag = "125")]
1769 Sort(::prost::alloc::boxed::Box<super::SortNode>),
1770 #[prost(message, tag = "126")]
1771 WatermarkFilter(::prost::alloc::boxed::Box<super::WatermarkFilterNode>),
1772 #[prost(message, tag = "127")]
1773 Dml(::prost::alloc::boxed::Box<super::DmlNode>),
1774 #[prost(message, tag = "128")]
1775 RowIdGen(::prost::alloc::boxed::Box<super::RowIdGenNode>),
1776 #[prost(message, tag = "129")]
1777 Now(::prost::alloc::boxed::Box<super::NowNode>),
1778 #[prost(message, tag = "130")]
1779 AppendOnlyGroupTopN(::prost::alloc::boxed::Box<super::GroupTopNNode>),
1780 #[prost(message, tag = "131")]
1781 TemporalJoin(::prost::alloc::boxed::Box<super::TemporalJoinNode>),
1782 #[prost(message, tag = "132")]
1783 BarrierRecv(::prost::alloc::boxed::Box<super::BarrierRecvNode>),
1784 #[prost(message, tag = "133")]
1785 Values(::prost::alloc::boxed::Box<super::ValuesNode>),
1786 #[prost(message, tag = "134")]
1787 AppendOnlyDedup(::prost::alloc::boxed::Box<super::DedupNode>),
1788 #[prost(message, tag = "135")]
1789 NoOp(super::NoOpNode),
1790 #[prost(message, tag = "136")]
1791 EowcOverWindow(::prost::alloc::boxed::Box<super::EowcOverWindowNode>),
1792 #[prost(message, tag = "137")]
1793 OverWindow(::prost::alloc::boxed::Box<super::OverWindowNode>),
1794 #[prost(message, tag = "138")]
1795 StreamFsFetch(::prost::alloc::boxed::Box<super::StreamFsFetchNode>),
1796 #[prost(message, tag = "139")]
1797 StreamCdcScan(::prost::alloc::boxed::Box<super::StreamCdcScanNode>),
1798 #[prost(message, tag = "140")]
1799 CdcFilter(::prost::alloc::boxed::Box<super::CdcFilterNode>),
1800 #[prost(message, tag = "142")]
1801 SourceBackfill(::prost::alloc::boxed::Box<super::SourceBackfillNode>),
1802 #[prost(message, tag = "143")]
1803 Changelog(::prost::alloc::boxed::Box<super::ChangeLogNode>),
1804 #[prost(message, tag = "144")]
1805 LocalApproxPercentile(
1806 ::prost::alloc::boxed::Box<super::LocalApproxPercentileNode>,
1807 ),
1808 #[prost(message, tag = "145")]
1809 GlobalApproxPercentile(
1810 ::prost::alloc::boxed::Box<super::GlobalApproxPercentileNode>,
1811 ),
1812 #[prost(message, tag = "146")]
1813 RowMerge(::prost::alloc::boxed::Box<super::RowMergeNode>),
1814 #[prost(message, tag = "147")]
1815 AsOfJoin(::prost::alloc::boxed::Box<super::AsOfJoinNode>),
1816 #[prost(message, tag = "148")]
1817 SyncLogStore(::prost::alloc::boxed::Box<super::SyncLogStoreNode>),
1818 #[prost(message, tag = "149")]
1819 MaterializedExprs(::prost::alloc::boxed::Box<super::MaterializedExprsNode>),
1820 #[prost(message, tag = "150")]
1821 VectorIndexWrite(::prost::alloc::boxed::Box<super::VectorIndexWriteNode>),
1822 #[prost(message, tag = "151")]
1823 UpstreamSinkUnion(::prost::alloc::boxed::Box<super::UpstreamSinkUnionNode>),
1824 #[prost(message, tag = "152")]
1825 LocalityProvider(::prost::alloc::boxed::Box<super::LocalityProviderNode>),
1826 #[prost(message, tag = "153")]
1827 EowcGapFill(::prost::alloc::boxed::Box<super::EowcGapFillNode>),
1828 #[prost(message, tag = "154")]
1829 GapFill(::prost::alloc::boxed::Box<super::GapFillNode>),
1830 #[prost(message, tag = "155")]
1831 VectorIndexLookupJoin(
1832 ::prost::alloc::boxed::Box<super::VectorIndexLookupJoinNode>,
1833 ),
1834 }
1835}
1836#[derive(prost_helpers::AnyPB)]
1850#[derive(Clone, PartialEq, ::prost::Message)]
1851pub struct DispatchOutputMapping {
1852 #[prost(uint32, repeated, tag = "1")]
1854 pub indices: ::prost::alloc::vec::Vec<u32>,
1855 #[prost(message, repeated, tag = "2")]
1861 pub types: ::prost::alloc::vec::Vec<dispatch_output_mapping::TypePair>,
1862}
1863pub mod dispatch_output_mapping {
1865 #[derive(prost_helpers::AnyPB)]
1866 #[derive(Clone, PartialEq, ::prost::Message)]
1867 pub struct TypePair {
1868 #[prost(message, optional, tag = "1")]
1869 pub upstream: ::core::option::Option<super::super::data::DataType>,
1870 #[prost(message, optional, tag = "2")]
1871 pub downstream: ::core::option::Option<super::super::data::DataType>,
1872 }
1873}
1874#[derive(prost_helpers::AnyPB)]
1877#[derive(Clone, PartialEq, ::prost::Message)]
1878pub struct DispatchStrategy {
1879 #[prost(enumeration = "DispatcherType", tag = "1")]
1880 pub r#type: i32,
1881 #[prost(uint32, repeated, tag = "2")]
1882 pub dist_key_indices: ::prost::alloc::vec::Vec<u32>,
1883 #[prost(message, optional, tag = "3")]
1884 pub output_mapping: ::core::option::Option<DispatchOutputMapping>,
1885}
1886#[derive(prost_helpers::AnyPB)]
1889#[derive(Clone, PartialEq, ::prost::Message)]
1890pub struct Dispatcher {
1891 #[prost(enumeration = "DispatcherType", tag = "1")]
1892 pub r#type: i32,
1893 #[prost(uint32, repeated, tag = "2")]
1896 pub dist_key_indices: ::prost::alloc::vec::Vec<u32>,
1897 #[prost(message, optional, tag = "6")]
1899 pub output_mapping: ::core::option::Option<DispatchOutputMapping>,
1900 #[prost(message, optional, tag = "3")]
1903 pub hash_mapping: ::core::option::Option<ActorMapping>,
1904 #[prost(uint32, tag = "4", wrapper = "crate::id::FragmentId")]
1907 pub dispatcher_id: crate::id::FragmentId,
1908 #[prost(uint32, repeated, tag = "5", wrapper = "crate::id::ActorId")]
1910 pub downstream_actor_id: ::prost::alloc::vec::Vec<crate::id::ActorId>,
1911}
1912#[derive(prost_helpers::AnyPB)]
1914#[derive(Clone, PartialEq, ::prost::Message)]
1915pub struct StreamActor {
1916 #[prost(uint32, tag = "1", wrapper = "crate::id::ActorId")]
1917 pub actor_id: crate::id::ActorId,
1918 #[prost(uint32, tag = "2", wrapper = "crate::id::FragmentId")]
1919 pub fragment_id: crate::id::FragmentId,
1920 #[prost(message, repeated, tag = "4")]
1921 pub dispatcher: ::prost::alloc::vec::Vec<Dispatcher>,
1922 #[prost(message, optional, tag = "8")]
1925 pub vnode_bitmap: ::core::option::Option<super::common::Buffer>,
1926 #[prost(string, tag = "9")]
1928 pub mview_definition: ::prost::alloc::string::String,
1929 #[prost(message, optional, tag = "10")]
1931 pub expr_context: ::core::option::Option<super::plan_common::ExprContext>,
1932 #[prost(string, tag = "11")]
1934 pub config_override: ::prost::alloc::string::String,
1935}
1936#[derive(prost_helpers::AnyPB)]
1938#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1939pub struct StreamContext {
1940 #[prost(string, tag = "1")]
1942 pub timezone: ::prost::alloc::string::String,
1943 #[prost(string, tag = "2")]
1945 pub config_override: ::prost::alloc::string::String,
1946 #[prost(string, tag = "3")]
1948 pub adaptive_parallelism_strategy: ::prost::alloc::string::String,
1949 #[prost(string, tag = "4")]
1951 pub backfill_adaptive_parallelism_strategy: ::prost::alloc::string::String,
1952}
1953#[derive(prost_helpers::AnyPB)]
1954#[derive(Clone, PartialEq, ::prost::Message)]
1955pub struct BackfillOrder {
1956 #[prost(map = "uint32, message", tag = "1", wrapper = "crate::id::RelationId")]
1957 pub order: ::std::collections::HashMap<
1958 crate::id::RelationId,
1959 super::common::Uint32Vector,
1960 >,
1961}
1962#[derive(prost_helpers::AnyPB)]
1967#[derive(Clone, PartialEq, ::prost::Message)]
1968pub struct StreamFragmentGraph {
1969 #[prost(map = "uint32, message", tag = "1", wrapper = "crate::id::FragmentId")]
1971 pub fragments: ::std::collections::HashMap<
1972 crate::id::FragmentId,
1973 stream_fragment_graph::StreamFragment,
1974 >,
1975 #[prost(message, repeated, tag = "2")]
1977 pub edges: ::prost::alloc::vec::Vec<stream_fragment_graph::StreamFragmentEdge>,
1978 #[prost(uint32, repeated, tag = "3", wrapper = "crate::id::TableId")]
1979 pub dependent_table_ids: ::prost::alloc::vec::Vec<crate::id::TableId>,
1980 #[prost(uint32, tag = "4")]
1981 pub table_ids_cnt: u32,
1982 #[prost(message, optional, tag = "5")]
1983 pub ctx: ::core::option::Option<StreamContext>,
1984 #[prost(message, optional, tag = "6")]
1986 pub parallelism: ::core::option::Option<stream_fragment_graph::Parallelism>,
1987 #[prost(message, optional, tag = "9")]
1989 pub backfill_parallelism: ::core::option::Option<stream_fragment_graph::Parallelism>,
1990 #[prost(uint32, tag = "7")]
2000 pub max_parallelism: u32,
2001 #[prost(message, optional, tag = "8")]
2003 pub backfill_order: ::core::option::Option<BackfillOrder>,
2004}
2005pub mod stream_fragment_graph {
2007 #[derive(prost_helpers::AnyPB)]
2008 #[derive(Clone, PartialEq, ::prost::Message)]
2009 pub struct StreamFragment {
2010 #[prost(uint32, tag = "1", wrapper = "crate::id::FragmentId")]
2012 pub fragment_id: crate::id::FragmentId,
2013 #[prost(message, optional, tag = "2")]
2015 pub node: ::core::option::Option<super::StreamNode>,
2016 #[prost(uint32, tag = "3")]
2018 pub fragment_type_mask: u32,
2019 #[prost(bool, tag = "4")]
2023 pub requires_singleton: bool,
2024 }
2025 #[derive(prost_helpers::AnyPB)]
2026 #[derive(Clone, PartialEq, ::prost::Message)]
2027 pub struct StreamFragmentEdge {
2028 #[prost(message, optional, tag = "1")]
2030 pub dispatch_strategy: ::core::option::Option<super::DispatchStrategy>,
2031 #[prost(uint64, tag = "3")]
2035 pub link_id: u64,
2036 #[prost(uint32, tag = "4", wrapper = "crate::id::FragmentId")]
2037 pub upstream_id: crate::id::FragmentId,
2038 #[prost(uint32, tag = "5", wrapper = "crate::id::FragmentId")]
2039 pub downstream_id: crate::id::FragmentId,
2040 }
2041 #[derive(prost_helpers::AnyPB)]
2042 #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2043 pub struct Parallelism {
2044 #[prost(uint64, tag = "1")]
2045 pub parallelism: u64,
2046 }
2047}
2048#[derive(prost_helpers::AnyPB)]
2050#[derive(Clone, PartialEq, ::prost::Message)]
2051pub struct SinkSchemaChange {
2052 #[prost(message, repeated, tag = "1")]
2055 pub original_schema: ::prost::alloc::vec::Vec<super::plan_common::Field>,
2056 #[prost(oneof = "sink_schema_change::Op", tags = "2, 3")]
2058 pub op: ::core::option::Option<sink_schema_change::Op>,
2059}
2060pub mod sink_schema_change {
2062 #[derive(prost_helpers::AnyPB)]
2064 #[derive(Clone, PartialEq, ::prost::Oneof)]
2065 pub enum Op {
2066 #[prost(message, tag = "2")]
2068 AddColumns(super::SinkAddColumnsOp),
2069 #[prost(message, tag = "3")]
2071 DropColumns(super::SinkDropColumnsOp),
2072 }
2073}
2074#[derive(prost_helpers::AnyPB)]
2076#[derive(Clone, PartialEq, ::prost::Message)]
2077pub struct SinkAddColumnsOp {
2078 #[prost(message, repeated, tag = "1")]
2080 pub fields: ::prost::alloc::vec::Vec<super::plan_common::Field>,
2081}
2082#[derive(prost_helpers::AnyPB)]
2084#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2085pub struct SinkDropColumnsOp {
2086 #[prost(string, repeated, tag = "1")]
2088 pub column_names: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2089}
2090#[derive(prost_helpers::AnyPB)]
2091#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2092#[repr(i32)]
2093pub enum SinkLogStoreType {
2094 Unspecified = 0,
2096 KvLogStore = 1,
2097 InMemoryLogStore = 2,
2098}
2099impl SinkLogStoreType {
2100 pub fn as_str_name(&self) -> &'static str {
2105 match self {
2106 Self::Unspecified => "SINK_LOG_STORE_TYPE_UNSPECIFIED",
2107 Self::KvLogStore => "SINK_LOG_STORE_TYPE_KV_LOG_STORE",
2108 Self::InMemoryLogStore => "SINK_LOG_STORE_TYPE_IN_MEMORY_LOG_STORE",
2109 }
2110 }
2111 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2113 match value {
2114 "SINK_LOG_STORE_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
2115 "SINK_LOG_STORE_TYPE_KV_LOG_STORE" => Some(Self::KvLogStore),
2116 "SINK_LOG_STORE_TYPE_IN_MEMORY_LOG_STORE" => Some(Self::InMemoryLogStore),
2117 _ => None,
2118 }
2119 }
2120}
2121#[derive(prost_helpers::AnyPB)]
2122#[derive(prost_helpers::Version)]
2123#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2124#[repr(i32)]
2125pub enum AggNodeVersion {
2126 Unspecified = 0,
2127 Issue12140 = 1,
2129 Issue13465 = 2,
2131}
2132impl AggNodeVersion {
2133 pub fn as_str_name(&self) -> &'static str {
2138 match self {
2139 Self::Unspecified => "AGG_NODE_VERSION_UNSPECIFIED",
2140 Self::Issue12140 => "AGG_NODE_VERSION_ISSUE_12140",
2141 Self::Issue13465 => "AGG_NODE_VERSION_ISSUE_13465",
2142 }
2143 }
2144 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2146 match value {
2147 "AGG_NODE_VERSION_UNSPECIFIED" => Some(Self::Unspecified),
2148 "AGG_NODE_VERSION_ISSUE_12140" => Some(Self::Issue12140),
2149 "AGG_NODE_VERSION_ISSUE_13465" => Some(Self::Issue13465),
2150 _ => None,
2151 }
2152 }
2153}
2154#[derive(prost_helpers::AnyPB)]
2155#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2156#[repr(i32)]
2157pub enum InequalityType {
2158 Unspecified = 0,
2159 LessThan = 1,
2160 LessThanOrEqual = 2,
2161 GreaterThan = 3,
2162 GreaterThanOrEqual = 4,
2163}
2164impl InequalityType {
2165 pub fn as_str_name(&self) -> &'static str {
2170 match self {
2171 Self::Unspecified => "INEQUALITY_TYPE_UNSPECIFIED",
2172 Self::LessThan => "INEQUALITY_TYPE_LESS_THAN",
2173 Self::LessThanOrEqual => "INEQUALITY_TYPE_LESS_THAN_OR_EQUAL",
2174 Self::GreaterThan => "INEQUALITY_TYPE_GREATER_THAN",
2175 Self::GreaterThanOrEqual => "INEQUALITY_TYPE_GREATER_THAN_OR_EQUAL",
2176 }
2177 }
2178 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2180 match value {
2181 "INEQUALITY_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
2182 "INEQUALITY_TYPE_LESS_THAN" => Some(Self::LessThan),
2183 "INEQUALITY_TYPE_LESS_THAN_OR_EQUAL" => Some(Self::LessThanOrEqual),
2184 "INEQUALITY_TYPE_GREATER_THAN" => Some(Self::GreaterThan),
2185 "INEQUALITY_TYPE_GREATER_THAN_OR_EQUAL" => Some(Self::GreaterThanOrEqual),
2186 _ => None,
2187 }
2188 }
2189}
2190#[derive(prost_helpers::AnyPB)]
2191#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2192#[repr(i32)]
2193pub enum JoinEncodingType {
2194 Unspecified = 0,
2195 MemoryOptimized = 1,
2196 CpuOptimized = 2,
2197}
2198impl JoinEncodingType {
2199 pub fn as_str_name(&self) -> &'static str {
2204 match self {
2205 Self::Unspecified => "UNSPECIFIED",
2206 Self::MemoryOptimized => "MEMORY_OPTIMIZED",
2207 Self::CpuOptimized => "CPU_OPTIMIZED",
2208 }
2209 }
2210 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2212 match value {
2213 "UNSPECIFIED" => Some(Self::Unspecified),
2214 "MEMORY_OPTIMIZED" => Some(Self::MemoryOptimized),
2215 "CPU_OPTIMIZED" => Some(Self::CpuOptimized),
2216 _ => None,
2217 }
2218 }
2219}
2220#[derive(prost_helpers::AnyPB)]
2222#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2223#[repr(i32)]
2224pub enum StreamScanType {
2225 Unspecified = 0,
2226 Chain = 1,
2228 Rearrange = 2,
2230 Backfill = 3,
2232 UpstreamOnly = 4,
2234 ArrangementBackfill = 5,
2236 SnapshotBackfill = 6,
2238 CrossDbSnapshotBackfill = 7,
2240}
2241impl StreamScanType {
2242 pub fn as_str_name(&self) -> &'static str {
2247 match self {
2248 Self::Unspecified => "STREAM_SCAN_TYPE_UNSPECIFIED",
2249 Self::Chain => "STREAM_SCAN_TYPE_CHAIN",
2250 Self::Rearrange => "STREAM_SCAN_TYPE_REARRANGE",
2251 Self::Backfill => "STREAM_SCAN_TYPE_BACKFILL",
2252 Self::UpstreamOnly => "STREAM_SCAN_TYPE_UPSTREAM_ONLY",
2253 Self::ArrangementBackfill => "STREAM_SCAN_TYPE_ARRANGEMENT_BACKFILL",
2254 Self::SnapshotBackfill => "STREAM_SCAN_TYPE_SNAPSHOT_BACKFILL",
2255 Self::CrossDbSnapshotBackfill => {
2256 "STREAM_SCAN_TYPE_CROSS_DB_SNAPSHOT_BACKFILL"
2257 }
2258 }
2259 }
2260 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2262 match value {
2263 "STREAM_SCAN_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
2264 "STREAM_SCAN_TYPE_CHAIN" => Some(Self::Chain),
2265 "STREAM_SCAN_TYPE_REARRANGE" => Some(Self::Rearrange),
2266 "STREAM_SCAN_TYPE_BACKFILL" => Some(Self::Backfill),
2267 "STREAM_SCAN_TYPE_UPSTREAM_ONLY" => Some(Self::UpstreamOnly),
2268 "STREAM_SCAN_TYPE_ARRANGEMENT_BACKFILL" => Some(Self::ArrangementBackfill),
2269 "STREAM_SCAN_TYPE_SNAPSHOT_BACKFILL" => Some(Self::SnapshotBackfill),
2270 "STREAM_SCAN_TYPE_CROSS_DB_SNAPSHOT_BACKFILL" => {
2271 Some(Self::CrossDbSnapshotBackfill)
2272 }
2273 _ => None,
2274 }
2275 }
2276}
2277#[derive(prost_helpers::AnyPB)]
2278#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2279#[repr(i32)]
2280pub enum OverWindowCachePolicy {
2281 Unspecified = 0,
2282 Full = 1,
2283 Recent = 2,
2284 RecentFirstN = 3,
2285 RecentLastN = 4,
2286}
2287impl OverWindowCachePolicy {
2288 pub fn as_str_name(&self) -> &'static str {
2293 match self {
2294 Self::Unspecified => "OVER_WINDOW_CACHE_POLICY_UNSPECIFIED",
2295 Self::Full => "OVER_WINDOW_CACHE_POLICY_FULL",
2296 Self::Recent => "OVER_WINDOW_CACHE_POLICY_RECENT",
2297 Self::RecentFirstN => "OVER_WINDOW_CACHE_POLICY_RECENT_FIRST_N",
2298 Self::RecentLastN => "OVER_WINDOW_CACHE_POLICY_RECENT_LAST_N",
2299 }
2300 }
2301 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2303 match value {
2304 "OVER_WINDOW_CACHE_POLICY_UNSPECIFIED" => Some(Self::Unspecified),
2305 "OVER_WINDOW_CACHE_POLICY_FULL" => Some(Self::Full),
2306 "OVER_WINDOW_CACHE_POLICY_RECENT" => Some(Self::Recent),
2307 "OVER_WINDOW_CACHE_POLICY_RECENT_FIRST_N" => Some(Self::RecentFirstN),
2308 "OVER_WINDOW_CACHE_POLICY_RECENT_LAST_N" => Some(Self::RecentLastN),
2309 _ => None,
2310 }
2311 }
2312}
2313#[derive(prost_helpers::AnyPB)]
2314#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2315#[repr(i32)]
2316pub enum DispatcherType {
2317 Unspecified = 0,
2318 Hash = 1,
2320 Broadcast = 2,
2325 Simple = 3,
2327 NoShuffle = 4,
2331}
2332impl DispatcherType {
2333 pub fn as_str_name(&self) -> &'static str {
2338 match self {
2339 Self::Unspecified => "DISPATCHER_TYPE_UNSPECIFIED",
2340 Self::Hash => "DISPATCHER_TYPE_HASH",
2341 Self::Broadcast => "DISPATCHER_TYPE_BROADCAST",
2342 Self::Simple => "DISPATCHER_TYPE_SIMPLE",
2343 Self::NoShuffle => "DISPATCHER_TYPE_NO_SHUFFLE",
2344 }
2345 }
2346 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2348 match value {
2349 "DISPATCHER_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
2350 "DISPATCHER_TYPE_HASH" => Some(Self::Hash),
2351 "DISPATCHER_TYPE_BROADCAST" => Some(Self::Broadcast),
2352 "DISPATCHER_TYPE_SIMPLE" => Some(Self::Simple),
2353 "DISPATCHER_TYPE_NO_SHUFFLE" => Some(Self::NoShuffle),
2354 _ => None,
2355 }
2356 }
2357}