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 IcebergWithPkIndexWriterNode {
677 #[prost(message, optional, tag = "1")]
678 pub sink_desc: ::core::option::Option<SinkDesc>,
679 #[prost(message, optional, tag = "2")]
680 pub pk_index_table: ::core::option::Option<super::catalog::Table>,
681}
682#[derive(prost_helpers::AnyPB)]
683#[derive(Clone, PartialEq, ::prost::Message)]
684pub struct IcebergWithPkIndexDvMergerNode {
685 #[prost(message, optional, tag = "1")]
686 pub sink_desc: ::core::option::Option<SinkDesc>,
687}
688#[derive(prost_helpers::AnyPB)]
689#[derive(Clone, PartialEq, ::prost::Message)]
690pub struct ProjectNode {
691 #[prost(message, repeated, tag = "1")]
692 pub select_list: ::prost::alloc::vec::Vec<super::expr::ExprNode>,
693 #[prost(uint32, repeated, tag = "2")]
697 pub watermark_input_cols: ::prost::alloc::vec::Vec<u32>,
698 #[prost(uint32, repeated, tag = "3")]
699 pub watermark_output_cols: ::prost::alloc::vec::Vec<u32>,
700 #[prost(uint32, repeated, tag = "4")]
701 pub nondecreasing_exprs: ::prost::alloc::vec::Vec<u32>,
702 #[prost(bool, tag = "5")]
705 pub noop_update_hint: bool,
706}
707#[derive(prost_helpers::AnyPB)]
708#[derive(Clone, PartialEq, ::prost::Message)]
709pub struct FilterNode {
710 #[prost(message, optional, tag = "1")]
711 pub search_condition: ::core::option::Option<super::expr::ExprNode>,
712}
713#[derive(prost_helpers::AnyPB)]
714#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
715pub struct ChangeLogNode {
716 #[prost(bool, tag = "1")]
718 pub need_op: bool,
719 #[prost(uint32, repeated, tag = "2")]
720 pub distribution_keys: ::prost::alloc::vec::Vec<u32>,
721}
722#[derive(prost_helpers::AnyPB)]
723#[derive(Clone, PartialEq, ::prost::Message)]
724pub struct CdcFilterNode {
725 #[prost(message, optional, tag = "1")]
726 pub search_condition: ::core::option::Option<super::expr::ExprNode>,
727 #[prost(uint32, tag = "2", wrapper = "crate::id::SourceId")]
728 pub upstream_source_id: crate::id::SourceId,
729}
730#[derive(prost_helpers::AnyPB)]
739#[derive(Clone, PartialEq, ::prost::Message)]
740pub struct MaterializeNode {
741 #[prost(uint32, tag = "1", wrapper = "crate::id::TableId")]
742 pub table_id: crate::id::TableId,
743 #[prost(message, repeated, tag = "2")]
745 pub column_orders: ::prost::alloc::vec::Vec<super::common::ColumnOrder>,
746 #[prost(message, optional, tag = "3")]
753 pub table: ::core::option::Option<super::catalog::Table>,
754 #[prost(message, optional, tag = "5")]
763 pub staging_table: ::core::option::Option<super::catalog::Table>,
764 #[prost(message, optional, tag = "6")]
777 pub refresh_progress_table: ::core::option::Option<super::catalog::Table>,
778 #[prost(bool, tag = "7")]
780 pub cleaned_by_ttl_watermark: bool,
781}
782#[derive(prost_helpers::AnyPB)]
783#[derive(Clone, PartialEq, ::prost::Message)]
784pub struct AggCallState {
785 #[prost(oneof = "agg_call_state::Inner", tags = "1, 3")]
786 pub inner: ::core::option::Option<agg_call_state::Inner>,
787}
788pub mod agg_call_state {
790 #[derive(prost_helpers::AnyPB)]
792 #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
793 pub struct ValueState {}
794 #[derive(prost_helpers::AnyPB)]
796 #[derive(Clone, PartialEq, ::prost::Message)]
797 pub struct MaterializedInputState {
798 #[prost(message, optional, tag = "1")]
799 pub table: ::core::option::Option<super::super::catalog::Table>,
800 #[prost(uint32, repeated, tag = "2")]
802 pub included_upstream_indices: ::prost::alloc::vec::Vec<u32>,
803 #[prost(uint32, repeated, tag = "3")]
804 pub table_value_indices: ::prost::alloc::vec::Vec<u32>,
805 #[prost(message, repeated, tag = "4")]
806 pub order_columns: ::prost::alloc::vec::Vec<super::super::common::ColumnOrder>,
807 }
808 #[derive(prost_helpers::AnyPB)]
809 #[derive(Clone, PartialEq, ::prost::Oneof)]
810 pub enum Inner {
811 #[prost(message, tag = "1")]
812 ValueState(ValueState),
813 #[prost(message, tag = "3")]
814 MaterializedInputState(MaterializedInputState),
815 }
816}
817#[derive(prost_helpers::AnyPB)]
818#[derive(Clone, PartialEq, ::prost::Message)]
819pub struct SimpleAggNode {
820 #[prost(message, repeated, tag = "1")]
821 pub agg_calls: ::prost::alloc::vec::Vec<super::expr::AggCall>,
822 #[prost(message, repeated, tag = "3")]
823 pub agg_call_states: ::prost::alloc::vec::Vec<AggCallState>,
824 #[prost(message, optional, tag = "4")]
825 pub intermediate_state_table: ::core::option::Option<super::catalog::Table>,
826 #[prost(bool, tag = "5")]
829 pub is_append_only: bool,
830 #[prost(map = "uint32, message", tag = "6")]
831 pub distinct_dedup_tables: ::std::collections::HashMap<u32, super::catalog::Table>,
832 #[prost(uint32, tag = "7")]
833 pub row_count_index: u32,
834 #[prost(enumeration = "AggNodeVersion", tag = "8")]
835 pub version: i32,
836 #[prost(bool, tag = "9")]
839 pub must_output_per_barrier: bool,
840}
841#[derive(prost_helpers::AnyPB)]
842#[derive(Clone, PartialEq, ::prost::Message)]
843pub struct HashAggNode {
844 #[prost(uint32, repeated, tag = "1")]
845 pub group_key: ::prost::alloc::vec::Vec<u32>,
846 #[prost(message, repeated, tag = "2")]
847 pub agg_calls: ::prost::alloc::vec::Vec<super::expr::AggCall>,
848 #[prost(message, repeated, tag = "3")]
849 pub agg_call_states: ::prost::alloc::vec::Vec<AggCallState>,
850 #[prost(message, optional, tag = "4")]
851 pub intermediate_state_table: ::core::option::Option<super::catalog::Table>,
852 #[prost(bool, tag = "5")]
855 pub is_append_only: bool,
856 #[prost(map = "uint32, message", tag = "6")]
857 pub distinct_dedup_tables: ::std::collections::HashMap<u32, super::catalog::Table>,
858 #[prost(uint32, tag = "7")]
859 pub row_count_index: u32,
860 #[prost(bool, tag = "8")]
861 pub emit_on_window_close: bool,
862 #[prost(enumeration = "AggNodeVersion", tag = "9")]
863 pub version: i32,
864}
865#[derive(prost_helpers::AnyPB)]
866#[derive(Clone, PartialEq, ::prost::Message)]
867pub struct TopNNode {
868 #[prost(uint64, tag = "1")]
870 pub limit: u64,
871 #[prost(uint64, tag = "2")]
872 pub offset: u64,
873 #[prost(message, optional, tag = "3")]
874 pub table: ::core::option::Option<super::catalog::Table>,
875 #[prost(message, repeated, tag = "4")]
876 pub order_by: ::prost::alloc::vec::Vec<super::common::ColumnOrder>,
877 #[prost(bool, tag = "5")]
878 pub with_ties: bool,
879}
880#[derive(prost_helpers::AnyPB)]
881#[derive(Clone, PartialEq, ::prost::Message)]
882pub struct GroupTopNNode {
883 #[prost(uint64, tag = "1")]
885 pub limit: u64,
886 #[prost(uint64, tag = "2")]
887 pub offset: u64,
888 #[prost(uint32, repeated, tag = "3")]
889 pub group_key: ::prost::alloc::vec::Vec<u32>,
890 #[prost(message, optional, tag = "4")]
891 pub table: ::core::option::Option<super::catalog::Table>,
892 #[prost(message, repeated, tag = "5")]
893 pub order_by: ::prost::alloc::vec::Vec<super::common::ColumnOrder>,
894 #[prost(bool, tag = "6")]
895 pub with_ties: bool,
896}
897#[derive(prost_helpers::AnyPB)]
898#[derive(Clone, PartialEq, ::prost::Message)]
899pub struct DeltaExpression {
900 #[prost(enumeration = "super::expr::expr_node::Type", tag = "1")]
901 pub delta_type: i32,
902 #[prost(message, optional, tag = "2")]
903 pub delta: ::core::option::Option<super::expr::ExprNode>,
904}
905#[derive(prost_helpers::AnyPB)]
907#[derive(Clone, PartialEq, ::prost::Message)]
908pub struct InequalityPair {
909 #[prost(uint32, tag = "1")]
911 pub key_required_larger: u32,
912 #[prost(uint32, tag = "2")]
914 pub key_required_smaller: u32,
915 #[prost(bool, tag = "3")]
917 pub clean_state: bool,
918 #[prost(message, optional, tag = "4")]
920 pub delta_expression: ::core::option::Option<DeltaExpression>,
921}
922#[derive(prost_helpers::AnyPB)]
923#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
924pub struct InequalityPairV2 {
925 #[prost(uint32, tag = "1")]
927 pub left_idx: u32,
928 #[prost(uint32, tag = "2")]
930 pub right_idx: u32,
931 #[prost(bool, tag = "3")]
933 pub clean_left_state: bool,
934 #[prost(bool, tag = "4")]
936 pub clean_right_state: bool,
937 #[prost(enumeration = "InequalityType", tag = "5")]
939 pub op: i32,
940}
941#[derive(prost_helpers::AnyPB)]
942#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
943pub struct JoinKeyWatermarkIndex {
944 #[prost(uint32, tag = "1")]
946 pub index: u32,
947 #[prost(bool, tag = "2")]
949 pub do_state_cleaning: bool,
950}
951#[derive(prost_helpers::AnyPB)]
952#[derive(Clone, PartialEq, ::prost::Message)]
953pub struct HashJoinWatermarkHandleDesc {
954 #[prost(message, repeated, tag = "1")]
956 pub watermark_indices_in_jk: ::prost::alloc::vec::Vec<JoinKeyWatermarkIndex>,
957 #[prost(message, repeated, tag = "2")]
959 pub inequality_pairs: ::prost::alloc::vec::Vec<InequalityPairV2>,
960}
961#[derive(prost_helpers::AnyPB)]
962#[derive(Clone, PartialEq, ::prost::Message)]
963pub struct HashJoinNode {
964 #[prost(enumeration = "super::plan_common::JoinType", tag = "1")]
965 pub join_type: i32,
966 #[prost(int32, repeated, tag = "2")]
967 pub left_key: ::prost::alloc::vec::Vec<i32>,
968 #[prost(int32, repeated, tag = "3")]
969 pub right_key: ::prost::alloc::vec::Vec<i32>,
970 #[prost(message, optional, tag = "4")]
971 pub condition: ::core::option::Option<super::expr::ExprNode>,
972 #[prost(message, optional, tag = "6")]
974 pub left_table: ::core::option::Option<super::catalog::Table>,
975 #[prost(message, optional, tag = "7")]
977 pub right_table: ::core::option::Option<super::catalog::Table>,
978 #[prost(message, optional, tag = "8")]
980 pub left_degree_table: ::core::option::Option<super::catalog::Table>,
981 #[prost(message, optional, tag = "9")]
983 pub right_degree_table: ::core::option::Option<super::catalog::Table>,
984 #[prost(uint32, repeated, tag = "10")]
986 pub output_indices: ::prost::alloc::vec::Vec<u32>,
987 #[prost(uint32, repeated, tag = "11")]
992 pub left_deduped_input_pk_indices: ::prost::alloc::vec::Vec<u32>,
993 #[prost(uint32, repeated, tag = "12")]
998 pub right_deduped_input_pk_indices: ::prost::alloc::vec::Vec<u32>,
999 #[prost(bool, repeated, tag = "13")]
1000 pub null_safe: ::prost::alloc::vec::Vec<bool>,
1001 #[prost(bool, tag = "14")]
1004 pub is_append_only: bool,
1005 #[deprecated]
1008 #[prost(enumeration = "JoinEncodingType", tag = "15")]
1009 pub join_encoding_type: i32,
1010 #[prost(message, optional, tag = "17")]
1012 pub watermark_handle_desc: ::core::option::Option<HashJoinWatermarkHandleDesc>,
1013}
1014#[derive(prost_helpers::AnyPB)]
1015#[derive(Clone, PartialEq, ::prost::Message)]
1016pub struct AsOfJoinNode {
1017 #[prost(enumeration = "super::plan_common::AsOfJoinType", tag = "1")]
1018 pub join_type: i32,
1019 #[prost(int32, repeated, tag = "2")]
1020 pub left_key: ::prost::alloc::vec::Vec<i32>,
1021 #[prost(int32, repeated, tag = "3")]
1022 pub right_key: ::prost::alloc::vec::Vec<i32>,
1023 #[prost(message, optional, tag = "4")]
1025 pub left_table: ::core::option::Option<super::catalog::Table>,
1026 #[prost(message, optional, tag = "5")]
1028 pub right_table: ::core::option::Option<super::catalog::Table>,
1029 #[prost(uint32, repeated, tag = "6")]
1031 pub output_indices: ::prost::alloc::vec::Vec<u32>,
1032 #[prost(uint32, repeated, tag = "7")]
1036 pub left_deduped_input_pk_indices: ::prost::alloc::vec::Vec<u32>,
1037 #[prost(uint32, repeated, tag = "8")]
1041 pub right_deduped_input_pk_indices: ::prost::alloc::vec::Vec<u32>,
1042 #[prost(bool, repeated, tag = "9")]
1043 pub null_safe: ::prost::alloc::vec::Vec<bool>,
1044 #[prost(message, optional, tag = "10")]
1045 pub asof_desc: ::core::option::Option<super::plan_common::AsOfJoinDesc>,
1046 #[deprecated]
1049 #[prost(enumeration = "JoinEncodingType", tag = "11")]
1050 pub join_encoding_type: i32,
1051 #[prost(bool, optional, tag = "12")]
1055 pub use_cache: ::core::option::Option<bool>,
1056}
1057#[derive(prost_helpers::AnyPB)]
1058#[derive(Clone, PartialEq, ::prost::Message)]
1059pub struct TemporalJoinNode {
1060 #[prost(enumeration = "super::plan_common::JoinType", tag = "1")]
1061 pub join_type: i32,
1062 #[prost(int32, repeated, tag = "2")]
1063 pub left_key: ::prost::alloc::vec::Vec<i32>,
1064 #[prost(int32, repeated, tag = "3")]
1065 pub right_key: ::prost::alloc::vec::Vec<i32>,
1066 #[prost(bool, repeated, tag = "4")]
1067 pub null_safe: ::prost::alloc::vec::Vec<bool>,
1068 #[prost(message, optional, tag = "5")]
1069 pub condition: ::core::option::Option<super::expr::ExprNode>,
1070 #[prost(uint32, repeated, tag = "6")]
1072 pub output_indices: ::prost::alloc::vec::Vec<u32>,
1073 #[prost(message, optional, tag = "7")]
1075 pub table_desc: ::core::option::Option<super::plan_common::StorageTableDesc>,
1076 #[prost(uint32, repeated, tag = "8")]
1078 pub table_output_indices: ::prost::alloc::vec::Vec<u32>,
1079 #[prost(message, optional, tag = "9")]
1081 pub memo_table: ::core::option::Option<super::catalog::Table>,
1082 #[prost(bool, tag = "10")]
1084 pub is_nested_loop: bool,
1085}
1086#[derive(prost_helpers::AnyPB)]
1087#[derive(Clone, PartialEq, ::prost::Message)]
1088pub struct DynamicFilterNode {
1089 #[prost(uint32, tag = "1")]
1090 pub left_key: u32,
1091 #[prost(message, optional, tag = "2")]
1093 pub condition: ::core::option::Option<super::expr::ExprNode>,
1094 #[prost(message, optional, tag = "3")]
1096 pub left_table: ::core::option::Option<super::catalog::Table>,
1097 #[prost(message, optional, tag = "4")]
1099 pub right_table: ::core::option::Option<super::catalog::Table>,
1100 #[deprecated]
1107 #[prost(bool, tag = "5")]
1108 pub condition_always_relax: bool,
1109 #[prost(bool, tag = "6")]
1111 pub cleaned_by_watermark: bool,
1112}
1113#[derive(prost_helpers::AnyPB)]
1116#[derive(Clone, PartialEq, ::prost::Message)]
1117pub struct DeltaIndexJoinNode {
1118 #[prost(enumeration = "super::plan_common::JoinType", tag = "1")]
1119 pub join_type: i32,
1120 #[prost(int32, repeated, tag = "2")]
1121 pub left_key: ::prost::alloc::vec::Vec<i32>,
1122 #[prost(int32, repeated, tag = "3")]
1123 pub right_key: ::prost::alloc::vec::Vec<i32>,
1124 #[prost(message, optional, tag = "4")]
1125 pub condition: ::core::option::Option<super::expr::ExprNode>,
1126 #[prost(uint32, tag = "7", wrapper = "crate::id::TableId")]
1128 pub left_table_id: crate::id::TableId,
1129 #[prost(uint32, tag = "8", wrapper = "crate::id::TableId")]
1131 pub right_table_id: crate::id::TableId,
1132 #[prost(message, optional, tag = "9")]
1134 pub left_info: ::core::option::Option<ArrangementInfo>,
1135 #[prost(message, optional, tag = "10")]
1137 pub right_info: ::core::option::Option<ArrangementInfo>,
1138 #[prost(uint32, repeated, tag = "11")]
1140 pub output_indices: ::prost::alloc::vec::Vec<u32>,
1141}
1142#[derive(prost_helpers::AnyPB)]
1143#[derive(Clone, PartialEq, ::prost::Message)]
1144pub struct HopWindowNode {
1145 #[prost(uint32, tag = "1")]
1146 pub time_col: u32,
1147 #[prost(message, optional, tag = "2")]
1148 pub window_slide: ::core::option::Option<super::data::Interval>,
1149 #[prost(message, optional, tag = "3")]
1150 pub window_size: ::core::option::Option<super::data::Interval>,
1151 #[prost(uint32, repeated, tag = "4")]
1152 pub output_indices: ::prost::alloc::vec::Vec<u32>,
1153 #[prost(message, repeated, tag = "5")]
1154 pub window_start_exprs: ::prost::alloc::vec::Vec<super::expr::ExprNode>,
1155 #[prost(message, repeated, tag = "6")]
1156 pub window_end_exprs: ::prost::alloc::vec::Vec<super::expr::ExprNode>,
1157}
1158#[derive(prost_helpers::AnyPB)]
1159#[derive(Clone, PartialEq, ::prost::Message)]
1160pub struct MergeNode {
1161 #[deprecated]
1168 #[prost(uint32, repeated, packed = "false", tag = "1")]
1169 pub upstream_actor_id: ::prost::alloc::vec::Vec<u32>,
1170 #[prost(uint32, tag = "2", wrapper = "crate::id::FragmentId")]
1171 pub upstream_fragment_id: crate::id::FragmentId,
1172 #[prost(enumeration = "DispatcherType", tag = "3")]
1175 pub upstream_dispatcher_type: i32,
1176 #[deprecated]
1178 #[prost(message, repeated, tag = "4")]
1179 pub fields: ::prost::alloc::vec::Vec<super::plan_common::Field>,
1180}
1181#[derive(prost_helpers::AnyPB)]
1184#[derive(Clone, PartialEq, ::prost::Message)]
1185pub struct ExchangeNode {
1186 #[prost(message, optional, tag = "1")]
1187 pub strategy: ::core::option::Option<DispatchStrategy>,
1188}
1189#[derive(prost_helpers::AnyPB)]
1195#[derive(Clone, PartialEq, ::prost::Message)]
1196pub struct StreamScanNode {
1197 #[prost(uint32, tag = "1", wrapper = "crate::id::TableId")]
1198 pub table_id: crate::id::TableId,
1199 #[prost(int32, repeated, tag = "2")]
1204 pub upstream_column_ids: ::prost::alloc::vec::Vec<i32>,
1205 #[prost(uint32, repeated, tag = "3")]
1210 pub output_indices: ::prost::alloc::vec::Vec<u32>,
1211 #[prost(enumeration = "StreamScanType", tag = "4")]
1216 pub stream_scan_type: i32,
1217 #[prost(message, optional, tag = "5")]
1219 pub state_table: ::core::option::Option<super::catalog::Table>,
1220 #[prost(message, optional, tag = "7")]
1223 pub table_desc: ::core::option::Option<super::plan_common::StorageTableDesc>,
1224 #[prost(uint32, optional, tag = "8")]
1226 pub rate_limit: ::core::option::Option<u32>,
1227 #[deprecated]
1229 #[prost(uint32, tag = "9")]
1230 pub snapshot_read_barrier_interval: u32,
1231 #[prost(message, optional, tag = "10")]
1234 pub arrangement_table: ::core::option::Option<super::catalog::Table>,
1235 #[prost(uint64, optional, tag = "11")]
1236 pub snapshot_backfill_epoch: ::core::option::Option<u64>,
1237 #[prost(message, optional, tag = "13")]
1239 pub pk_scan_range: ::core::option::Option<super::batch_plan::ScanRange>,
1240}
1241#[derive(prost_helpers::AnyPB)]
1243#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1244pub struct StreamCdcScanOptions {
1245 #[prost(bool, tag = "1")]
1247 pub disable_backfill: bool,
1248 #[prost(uint32, tag = "2")]
1249 pub snapshot_barrier_interval: u32,
1250 #[prost(uint32, tag = "3")]
1251 pub snapshot_batch_size: u32,
1252 #[prost(uint32, tag = "4")]
1253 pub backfill_parallelism: u32,
1254 #[prost(uint64, tag = "5")]
1255 pub backfill_num_rows_per_split: u64,
1256 #[prost(bool, tag = "6")]
1257 pub backfill_as_even_splits: bool,
1258 #[prost(uint32, tag = "7")]
1259 pub backfill_split_pk_column_index: u32,
1260}
1261#[derive(prost_helpers::AnyPB)]
1262#[derive(Clone, PartialEq, ::prost::Message)]
1263pub struct StreamCdcScanNode {
1264 #[prost(uint32, tag = "1", wrapper = "crate::id::TableId")]
1265 pub table_id: crate::id::TableId,
1266 #[prost(int32, repeated, tag = "2")]
1269 pub upstream_column_ids: ::prost::alloc::vec::Vec<i32>,
1270 #[prost(uint32, repeated, tag = "3")]
1272 pub output_indices: ::prost::alloc::vec::Vec<u32>,
1273 #[prost(message, optional, tag = "4")]
1275 pub state_table: ::core::option::Option<super::catalog::Table>,
1276 #[prost(message, optional, tag = "5")]
1278 pub cdc_table_desc: ::core::option::Option<super::plan_common::ExternalTableDesc>,
1279 #[prost(uint32, optional, tag = "6")]
1281 pub rate_limit: ::core::option::Option<u32>,
1282 #[prost(bool, tag = "7")]
1285 pub disable_backfill: bool,
1286 #[prost(message, optional, tag = "8")]
1287 pub options: ::core::option::Option<StreamCdcScanOptions>,
1288}
1289#[derive(prost_helpers::AnyPB)]
1293#[derive(Clone, PartialEq, ::prost::Message)]
1294pub struct BatchPlanNode {
1295 #[prost(message, optional, tag = "1")]
1296 pub table_desc: ::core::option::Option<super::plan_common::StorageTableDesc>,
1297 #[prost(int32, repeated, tag = "2")]
1298 pub column_ids: ::prost::alloc::vec::Vec<i32>,
1299}
1300#[derive(prost_helpers::AnyPB)]
1301#[derive(Clone, PartialEq, ::prost::Message)]
1302pub struct ArrangementInfo {
1303 #[prost(message, repeated, tag = "1")]
1306 pub arrange_key_orders: ::prost::alloc::vec::Vec<super::common::ColumnOrder>,
1307 #[prost(message, repeated, tag = "2")]
1309 pub column_descs: ::prost::alloc::vec::Vec<super::plan_common::ColumnDesc>,
1310 #[prost(message, optional, tag = "4")]
1312 pub table_desc: ::core::option::Option<super::plan_common::StorageTableDesc>,
1313 #[prost(uint32, repeated, tag = "5")]
1315 pub output_col_idx: ::prost::alloc::vec::Vec<u32>,
1316}
1317#[derive(prost_helpers::AnyPB)]
1320#[derive(Clone, PartialEq, ::prost::Message)]
1321pub struct ArrangeNode {
1322 #[prost(message, optional, tag = "1")]
1324 pub table_info: ::core::option::Option<ArrangementInfo>,
1325 #[prost(uint32, repeated, tag = "2")]
1327 pub distribution_key: ::prost::alloc::vec::Vec<u32>,
1328 #[prost(message, optional, tag = "3")]
1330 pub table: ::core::option::Option<super::catalog::Table>,
1331}
1332#[derive(prost_helpers::AnyPB)]
1334#[derive(Clone, PartialEq, ::prost::Message)]
1335pub struct LookupNode {
1336 #[prost(int32, repeated, tag = "1")]
1338 pub arrange_key: ::prost::alloc::vec::Vec<i32>,
1339 #[prost(int32, repeated, tag = "2")]
1341 pub stream_key: ::prost::alloc::vec::Vec<i32>,
1342 #[prost(bool, tag = "3")]
1344 pub use_current_epoch: bool,
1345 #[prost(int32, repeated, tag = "4")]
1349 pub column_mapping: ::prost::alloc::vec::Vec<i32>,
1350 #[prost(message, optional, tag = "7")]
1352 pub arrangement_table_info: ::core::option::Option<ArrangementInfo>,
1353 #[prost(oneof = "lookup_node::ArrangementTableId", tags = "5, 6")]
1354 pub arrangement_table_id: ::core::option::Option<lookup_node::ArrangementTableId>,
1355}
1356pub mod lookup_node {
1358 #[derive(prost_helpers::AnyPB)]
1359 #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Oneof)]
1360 pub enum ArrangementTableId {
1361 #[prost(uint32, tag = "5", wrapper = "crate::id::TableId")]
1363 TableId(crate::id::TableId),
1364 #[prost(uint32, tag = "6", wrapper = "crate::id::TableId")]
1366 IndexId(crate::id::TableId),
1367 }
1368}
1369#[derive(prost_helpers::AnyPB)]
1371#[derive(Clone, PartialEq, ::prost::Message)]
1372pub struct WatermarkFilterNode {
1373 #[prost(message, repeated, tag = "1")]
1375 pub watermark_descs: ::prost::alloc::vec::Vec<super::catalog::WatermarkDesc>,
1376 #[prost(message, repeated, tag = "2")]
1378 pub tables: ::prost::alloc::vec::Vec<super::catalog::Table>,
1379}
1380#[derive(prost_helpers::AnyPB)]
1382#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1383pub struct UnionNode {}
1384#[derive(prost_helpers::AnyPB)]
1386#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1387pub struct LookupUnionNode {
1388 #[prost(uint32, repeated, tag = "1")]
1389 pub order: ::prost::alloc::vec::Vec<u32>,
1390}
1391#[derive(prost_helpers::AnyPB)]
1392#[derive(Clone, PartialEq, ::prost::Message)]
1393pub struct ExpandNode {
1394 #[prost(message, repeated, tag = "1")]
1395 pub column_subsets: ::prost::alloc::vec::Vec<expand_node::Subset>,
1396}
1397pub mod expand_node {
1399 #[derive(prost_helpers::AnyPB)]
1400 #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1401 pub struct Subset {
1402 #[prost(uint32, repeated, tag = "1")]
1403 pub column_indices: ::prost::alloc::vec::Vec<u32>,
1404 }
1405}
1406#[derive(prost_helpers::AnyPB)]
1407#[derive(Clone, PartialEq, ::prost::Message)]
1408pub struct ProjectSetNode {
1409 #[prost(message, repeated, tag = "1")]
1410 pub select_list: ::prost::alloc::vec::Vec<super::expr::ProjectSetSelectItem>,
1411 #[prost(uint32, repeated, tag = "2")]
1415 pub watermark_input_cols: ::prost::alloc::vec::Vec<u32>,
1416 #[prost(uint32, repeated, tag = "3")]
1417 pub watermark_expr_indices: ::prost::alloc::vec::Vec<u32>,
1418 #[prost(uint32, repeated, tag = "4")]
1419 pub nondecreasing_exprs: ::prost::alloc::vec::Vec<u32>,
1420}
1421#[derive(prost_helpers::AnyPB)]
1423#[derive(Clone, PartialEq, ::prost::Message)]
1424pub struct SortNode {
1425 #[prost(message, optional, tag = "1")]
1427 pub state_table: ::core::option::Option<super::catalog::Table>,
1428 #[prost(uint32, tag = "2")]
1430 pub sort_column_index: u32,
1431}
1432#[derive(prost_helpers::AnyPB)]
1434#[derive(Clone, PartialEq, ::prost::Message)]
1435pub struct DmlNode {
1436 #[prost(uint32, tag = "1", wrapper = "crate::id::TableId")]
1438 pub table_id: crate::id::TableId,
1439 #[prost(uint64, tag = "3")]
1441 pub table_version_id: u64,
1442 #[prost(message, repeated, tag = "2")]
1444 pub column_descs: ::prost::alloc::vec::Vec<super::plan_common::ColumnDesc>,
1445 #[prost(uint32, optional, tag = "4")]
1446 pub rate_limit: ::core::option::Option<u32>,
1447}
1448#[derive(prost_helpers::AnyPB)]
1449#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1450pub struct RowIdGenNode {
1451 #[prost(uint64, tag = "1")]
1452 pub row_id_index: u64,
1453}
1454#[derive(prost_helpers::AnyPB)]
1455#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1456pub struct NowModeUpdateCurrent {}
1457#[derive(prost_helpers::AnyPB)]
1458#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1459pub struct NowModeGenerateSeries {
1460 #[prost(message, optional, tag = "1")]
1461 pub start_timestamp: ::core::option::Option<super::data::Datum>,
1462 #[prost(message, optional, tag = "2")]
1463 pub interval: ::core::option::Option<super::data::Datum>,
1464}
1465#[derive(prost_helpers::AnyPB)]
1466#[derive(Clone, PartialEq, ::prost::Message)]
1467pub struct NowNode {
1468 #[prost(message, optional, tag = "1")]
1470 pub state_table: ::core::option::Option<super::catalog::Table>,
1471 #[prost(oneof = "now_node::Mode", tags = "101, 102")]
1472 pub mode: ::core::option::Option<now_node::Mode>,
1473}
1474pub mod now_node {
1476 #[derive(prost_helpers::AnyPB)]
1477 #[derive(Clone, PartialEq, Eq, Hash, ::prost::Oneof)]
1478 pub enum Mode {
1479 #[prost(message, tag = "101")]
1480 UpdateCurrent(super::NowModeUpdateCurrent),
1481 #[prost(message, tag = "102")]
1482 GenerateSeries(super::NowModeGenerateSeries),
1483 }
1484}
1485#[derive(prost_helpers::AnyPB)]
1486#[derive(Clone, PartialEq, ::prost::Message)]
1487pub struct ValuesNode {
1488 #[prost(message, repeated, tag = "1")]
1489 pub tuples: ::prost::alloc::vec::Vec<values_node::ExprTuple>,
1490 #[prost(message, repeated, tag = "2")]
1491 pub fields: ::prost::alloc::vec::Vec<super::plan_common::Field>,
1492}
1493pub mod values_node {
1495 #[derive(prost_helpers::AnyPB)]
1496 #[derive(Clone, PartialEq, ::prost::Message)]
1497 pub struct ExprTuple {
1498 #[prost(message, repeated, tag = "1")]
1499 pub cells: ::prost::alloc::vec::Vec<super::super::expr::ExprNode>,
1500 }
1501}
1502#[derive(prost_helpers::AnyPB)]
1503#[derive(Clone, PartialEq, ::prost::Message)]
1504pub struct DedupNode {
1505 #[prost(message, optional, tag = "1")]
1506 pub state_table: ::core::option::Option<super::catalog::Table>,
1507 #[prost(uint32, repeated, tag = "2")]
1508 pub dedup_column_indices: ::prost::alloc::vec::Vec<u32>,
1509}
1510#[derive(prost_helpers::AnyPB)]
1511#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1512pub struct NoOpNode {}
1513#[derive(prost_helpers::AnyPB)]
1514#[derive(Clone, PartialEq, ::prost::Message)]
1515pub struct EowcOverWindowNode {
1516 #[prost(message, repeated, tag = "1")]
1517 pub calls: ::prost::alloc::vec::Vec<super::expr::WindowFunction>,
1518 #[prost(uint32, repeated, tag = "2")]
1519 pub partition_by: ::prost::alloc::vec::Vec<u32>,
1520 #[prost(message, repeated, tag = "3")]
1522 pub order_by: ::prost::alloc::vec::Vec<super::common::ColumnOrder>,
1523 #[prost(message, optional, tag = "4")]
1524 pub state_table: ::core::option::Option<super::catalog::Table>,
1525 #[prost(message, optional, tag = "5")]
1528 pub intermediate_state_table: ::core::option::Option<super::catalog::Table>,
1529}
1530#[derive(prost_helpers::AnyPB)]
1531#[derive(Clone, PartialEq, ::prost::Message)]
1532pub struct OverWindowNode {
1533 #[prost(message, repeated, tag = "1")]
1534 pub calls: ::prost::alloc::vec::Vec<super::expr::WindowFunction>,
1535 #[prost(uint32, repeated, tag = "2")]
1536 pub partition_by: ::prost::alloc::vec::Vec<u32>,
1537 #[prost(message, repeated, tag = "3")]
1538 pub order_by: ::prost::alloc::vec::Vec<super::common::ColumnOrder>,
1539 #[prost(message, optional, tag = "4")]
1540 pub state_table: ::core::option::Option<super::catalog::Table>,
1541 #[deprecated]
1543 #[prost(enumeration = "OverWindowCachePolicy", tag = "5")]
1544 pub cache_policy: i32,
1545}
1546#[derive(prost_helpers::AnyPB)]
1547#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1548pub struct LocalApproxPercentileNode {
1549 #[prost(double, tag = "1")]
1550 pub base: f64,
1551 #[prost(uint32, tag = "2")]
1552 pub percentile_index: u32,
1553}
1554#[derive(prost_helpers::AnyPB)]
1555#[derive(Clone, PartialEq, ::prost::Message)]
1556pub struct GlobalApproxPercentileNode {
1557 #[prost(double, tag = "1")]
1558 pub base: f64,
1559 #[prost(double, tag = "2")]
1560 pub quantile: f64,
1561 #[prost(message, optional, tag = "3")]
1562 pub bucket_state_table: ::core::option::Option<super::catalog::Table>,
1563 #[prost(message, optional, tag = "4")]
1564 pub count_state_table: ::core::option::Option<super::catalog::Table>,
1565}
1566#[derive(prost_helpers::AnyPB)]
1567#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1568pub struct RowMergeNode {
1569 #[prost(message, optional, tag = "1")]
1570 pub lhs_mapping: ::core::option::Option<super::catalog::ColIndexMapping>,
1571 #[prost(message, optional, tag = "2")]
1572 pub rhs_mapping: ::core::option::Option<super::catalog::ColIndexMapping>,
1573}
1574#[derive(prost_helpers::AnyPB)]
1575#[derive(Clone, PartialEq, ::prost::Message)]
1576pub struct SyncLogStoreNode {
1577 #[prost(message, optional, tag = "1")]
1578 pub log_store_table: ::core::option::Option<super::catalog::Table>,
1579 #[deprecated]
1581 #[prost(uint32, optional, tag = "2")]
1582 pub pause_duration_ms: ::core::option::Option<u32>,
1583 #[deprecated]
1585 #[prost(uint32, optional, tag = "3")]
1586 pub buffer_size: ::core::option::Option<u32>,
1587 #[prost(bool, tag = "4")]
1588 pub aligned: bool,
1589}
1590#[derive(prost_helpers::AnyPB)]
1591#[derive(Clone, PartialEq, ::prost::Message)]
1592pub struct MaterializedExprsNode {
1593 #[prost(message, repeated, tag = "1")]
1594 pub exprs: ::prost::alloc::vec::Vec<super::expr::ExprNode>,
1595 #[prost(message, optional, tag = "2")]
1596 pub state_table: ::core::option::Option<super::catalog::Table>,
1597 #[prost(uint32, optional, tag = "3")]
1598 pub state_clean_col_idx: ::core::option::Option<u32>,
1599}
1600#[derive(prost_helpers::AnyPB)]
1601#[derive(Clone, PartialEq, ::prost::Message)]
1602pub struct VectorIndexWriteNode {
1603 #[prost(message, optional, tag = "1")]
1604 pub table: ::core::option::Option<super::catalog::Table>,
1605}
1606#[derive(prost_helpers::AnyPB)]
1607#[derive(Clone, PartialEq, ::prost::Message)]
1608pub struct VectorIndexLookupJoinNode {
1609 #[prost(message, optional, tag = "1")]
1610 pub reader_desc: ::core::option::Option<super::plan_common::VectorIndexReaderDesc>,
1611 #[prost(uint32, tag = "2")]
1612 pub vector_column_idx: u32,
1613}
1614#[derive(prost_helpers::AnyPB)]
1615#[derive(Clone, PartialEq, ::prost::Message)]
1616pub struct UpstreamSinkUnionNode {
1617 #[prost(message, repeated, tag = "1")]
1620 pub init_upstreams: ::prost::alloc::vec::Vec<UpstreamSinkInfo>,
1621}
1622#[derive(prost_helpers::AnyPB)]
1623#[derive(Clone, PartialEq, ::prost::Message)]
1624pub struct LocalityProviderNode {
1625 #[prost(uint32, repeated, tag = "1")]
1627 pub locality_columns: ::prost::alloc::vec::Vec<u32>,
1628 #[prost(message, optional, tag = "2")]
1630 pub state_table: ::core::option::Option<super::catalog::Table>,
1631 #[prost(message, optional, tag = "3")]
1633 pub progress_table: ::core::option::Option<super::catalog::Table>,
1634}
1635#[derive(prost_helpers::AnyPB)]
1636#[derive(Clone, PartialEq, ::prost::Message)]
1637pub struct EowcGapFillNode {
1638 #[prost(uint32, tag = "1")]
1639 pub time_column_index: u32,
1640 #[prost(message, optional, tag = "2")]
1641 pub interval: ::core::option::Option<super::expr::ExprNode>,
1642 #[prost(uint32, repeated, tag = "3")]
1643 pub fill_columns: ::prost::alloc::vec::Vec<u32>,
1644 #[prost(string, repeated, tag = "4")]
1645 pub fill_strategies: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1646 #[prost(message, optional, tag = "5")]
1647 pub buffer_table: ::core::option::Option<super::catalog::Table>,
1648 #[prost(message, optional, tag = "6")]
1649 pub prev_row_table: ::core::option::Option<super::catalog::Table>,
1650}
1651#[derive(prost_helpers::AnyPB)]
1652#[derive(Clone, PartialEq, ::prost::Message)]
1653pub struct GapFillNode {
1654 #[prost(uint32, tag = "1")]
1655 pub time_column_index: u32,
1656 #[prost(message, optional, tag = "2")]
1657 pub interval: ::core::option::Option<super::expr::ExprNode>,
1658 #[prost(uint32, repeated, tag = "3")]
1659 pub fill_columns: ::prost::alloc::vec::Vec<u32>,
1660 #[prost(string, repeated, tag = "4")]
1661 pub fill_strategies: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1662 #[prost(message, optional, tag = "5")]
1663 pub state_table: ::core::option::Option<super::catalog::Table>,
1664}
1665#[derive(prost_helpers::AnyPB)]
1666#[derive(Clone, PartialEq, ::prost::Message)]
1667pub struct StreamNode {
1668 #[prost(uint64, tag = "1", wrapper = "crate::id::StreamNodeLocalOperatorId")]
1671 pub operator_id: crate::id::StreamNodeLocalOperatorId,
1672 #[prost(message, repeated, tag = "3")]
1674 pub input: ::prost::alloc::vec::Vec<StreamNode>,
1675 #[prost(uint32, repeated, tag = "2")]
1676 pub stream_key: ::prost::alloc::vec::Vec<u32>,
1677 #[prost(enumeration = "stream_node::StreamKind", tag = "24")]
1678 pub stream_kind: i32,
1679 #[prost(string, tag = "18")]
1680 pub identity: ::prost::alloc::string::String,
1681 #[prost(message, repeated, tag = "19")]
1683 pub fields: ::prost::alloc::vec::Vec<super::plan_common::Field>,
1684 #[prost(
1685 oneof = "stream_node::NodeBody",
1686 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, 156, 157"
1687 )]
1688 pub node_body: ::core::option::Option<stream_node::NodeBody>,
1689}
1690pub mod stream_node {
1692 #[derive(prost_helpers::AnyPB)]
1695 #[derive(
1696 Clone,
1697 Copy,
1698 Debug,
1699 PartialEq,
1700 Eq,
1701 Hash,
1702 PartialOrd,
1703 Ord,
1704 ::prost::Enumeration
1705 )]
1706 #[repr(i32)]
1707 pub enum StreamKind {
1708 Retract = 0,
1710 AppendOnly = 1,
1711 Upsert = 2,
1712 }
1713 impl StreamKind {
1714 pub fn as_str_name(&self) -> &'static str {
1719 match self {
1720 Self::Retract => "STREAM_KIND_RETRACT",
1721 Self::AppendOnly => "STREAM_KIND_APPEND_ONLY",
1722 Self::Upsert => "STREAM_KIND_UPSERT",
1723 }
1724 }
1725 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1727 match value {
1728 "STREAM_KIND_RETRACT" => Some(Self::Retract),
1729 "STREAM_KIND_APPEND_ONLY" => Some(Self::AppendOnly),
1730 "STREAM_KIND_UPSERT" => Some(Self::Upsert),
1731 _ => None,
1732 }
1733 }
1734 }
1735 #[derive(prost_helpers::AnyPB)]
1736 #[derive(::enum_as_inner::EnumAsInner, ::strum::Display, ::strum::EnumDiscriminants)]
1737 #[strum_discriminants(derive(::strum::Display, Hash))]
1738 #[derive(Clone, PartialEq, ::prost::Oneof)]
1739 pub enum NodeBody {
1740 #[prost(message, tag = "100")]
1741 Source(::prost::alloc::boxed::Box<super::SourceNode>),
1742 #[prost(message, tag = "101")]
1743 Project(::prost::alloc::boxed::Box<super::ProjectNode>),
1744 #[prost(message, tag = "102")]
1745 Filter(::prost::alloc::boxed::Box<super::FilterNode>),
1746 #[prost(message, tag = "103")]
1747 Materialize(::prost::alloc::boxed::Box<super::MaterializeNode>),
1748 #[prost(message, tag = "104")]
1749 StatelessSimpleAgg(::prost::alloc::boxed::Box<super::SimpleAggNode>),
1750 #[prost(message, tag = "105")]
1751 SimpleAgg(::prost::alloc::boxed::Box<super::SimpleAggNode>),
1752 #[prost(message, tag = "106")]
1753 HashAgg(::prost::alloc::boxed::Box<super::HashAggNode>),
1754 #[prost(message, tag = "107")]
1755 AppendOnlyTopN(::prost::alloc::boxed::Box<super::TopNNode>),
1756 #[prost(message, tag = "108")]
1757 HashJoin(::prost::alloc::boxed::Box<super::HashJoinNode>),
1758 #[prost(message, tag = "109")]
1759 TopN(::prost::alloc::boxed::Box<super::TopNNode>),
1760 #[prost(message, tag = "110")]
1761 HopWindow(::prost::alloc::boxed::Box<super::HopWindowNode>),
1762 #[prost(message, tag = "111")]
1763 Merge(::prost::alloc::boxed::Box<super::MergeNode>),
1764 #[prost(message, tag = "112")]
1765 Exchange(::prost::alloc::boxed::Box<super::ExchangeNode>),
1766 #[prost(message, tag = "113")]
1767 StreamScan(::prost::alloc::boxed::Box<super::StreamScanNode>),
1768 #[prost(message, tag = "114")]
1769 BatchPlan(::prost::alloc::boxed::Box<super::BatchPlanNode>),
1770 #[prost(message, tag = "115")]
1771 Lookup(::prost::alloc::boxed::Box<super::LookupNode>),
1772 #[prost(message, tag = "116")]
1773 Arrange(::prost::alloc::boxed::Box<super::ArrangeNode>),
1774 #[prost(message, tag = "117")]
1775 LookupUnion(::prost::alloc::boxed::Box<super::LookupUnionNode>),
1776 #[prost(message, tag = "118")]
1777 Union(super::UnionNode),
1778 #[prost(message, tag = "119")]
1779 DeltaIndexJoin(::prost::alloc::boxed::Box<super::DeltaIndexJoinNode>),
1780 #[prost(message, tag = "120")]
1781 Sink(::prost::alloc::boxed::Box<super::SinkNode>),
1782 #[prost(message, tag = "121")]
1783 Expand(::prost::alloc::boxed::Box<super::ExpandNode>),
1784 #[prost(message, tag = "122")]
1785 DynamicFilter(::prost::alloc::boxed::Box<super::DynamicFilterNode>),
1786 #[prost(message, tag = "123")]
1787 ProjectSet(::prost::alloc::boxed::Box<super::ProjectSetNode>),
1788 #[prost(message, tag = "124")]
1789 GroupTopN(::prost::alloc::boxed::Box<super::GroupTopNNode>),
1790 #[prost(message, tag = "125")]
1791 Sort(::prost::alloc::boxed::Box<super::SortNode>),
1792 #[prost(message, tag = "126")]
1793 WatermarkFilter(::prost::alloc::boxed::Box<super::WatermarkFilterNode>),
1794 #[prost(message, tag = "127")]
1795 Dml(::prost::alloc::boxed::Box<super::DmlNode>),
1796 #[prost(message, tag = "128")]
1797 RowIdGen(::prost::alloc::boxed::Box<super::RowIdGenNode>),
1798 #[prost(message, tag = "129")]
1799 Now(::prost::alloc::boxed::Box<super::NowNode>),
1800 #[prost(message, tag = "130")]
1801 AppendOnlyGroupTopN(::prost::alloc::boxed::Box<super::GroupTopNNode>),
1802 #[prost(message, tag = "131")]
1803 TemporalJoin(::prost::alloc::boxed::Box<super::TemporalJoinNode>),
1804 #[prost(message, tag = "132")]
1805 BarrierRecv(::prost::alloc::boxed::Box<super::BarrierRecvNode>),
1806 #[prost(message, tag = "133")]
1807 Values(::prost::alloc::boxed::Box<super::ValuesNode>),
1808 #[prost(message, tag = "134")]
1809 AppendOnlyDedup(::prost::alloc::boxed::Box<super::DedupNode>),
1810 #[prost(message, tag = "135")]
1811 NoOp(super::NoOpNode),
1812 #[prost(message, tag = "136")]
1813 EowcOverWindow(::prost::alloc::boxed::Box<super::EowcOverWindowNode>),
1814 #[prost(message, tag = "137")]
1815 OverWindow(::prost::alloc::boxed::Box<super::OverWindowNode>),
1816 #[prost(message, tag = "138")]
1817 StreamFsFetch(::prost::alloc::boxed::Box<super::StreamFsFetchNode>),
1818 #[prost(message, tag = "139")]
1819 StreamCdcScan(::prost::alloc::boxed::Box<super::StreamCdcScanNode>),
1820 #[prost(message, tag = "140")]
1821 CdcFilter(::prost::alloc::boxed::Box<super::CdcFilterNode>),
1822 #[prost(message, tag = "142")]
1823 SourceBackfill(::prost::alloc::boxed::Box<super::SourceBackfillNode>),
1824 #[prost(message, tag = "143")]
1825 Changelog(::prost::alloc::boxed::Box<super::ChangeLogNode>),
1826 #[prost(message, tag = "144")]
1827 LocalApproxPercentile(
1828 ::prost::alloc::boxed::Box<super::LocalApproxPercentileNode>,
1829 ),
1830 #[prost(message, tag = "145")]
1831 GlobalApproxPercentile(
1832 ::prost::alloc::boxed::Box<super::GlobalApproxPercentileNode>,
1833 ),
1834 #[prost(message, tag = "146")]
1835 RowMerge(::prost::alloc::boxed::Box<super::RowMergeNode>),
1836 #[prost(message, tag = "147")]
1837 AsOfJoin(::prost::alloc::boxed::Box<super::AsOfJoinNode>),
1838 #[prost(message, tag = "148")]
1839 SyncLogStore(::prost::alloc::boxed::Box<super::SyncLogStoreNode>),
1840 #[prost(message, tag = "149")]
1841 MaterializedExprs(::prost::alloc::boxed::Box<super::MaterializedExprsNode>),
1842 #[prost(message, tag = "150")]
1843 VectorIndexWrite(::prost::alloc::boxed::Box<super::VectorIndexWriteNode>),
1844 #[prost(message, tag = "151")]
1845 UpstreamSinkUnion(::prost::alloc::boxed::Box<super::UpstreamSinkUnionNode>),
1846 #[prost(message, tag = "152")]
1847 LocalityProvider(::prost::alloc::boxed::Box<super::LocalityProviderNode>),
1848 #[prost(message, tag = "153")]
1849 EowcGapFill(::prost::alloc::boxed::Box<super::EowcGapFillNode>),
1850 #[prost(message, tag = "154")]
1851 GapFill(::prost::alloc::boxed::Box<super::GapFillNode>),
1852 #[prost(message, tag = "155")]
1853 VectorIndexLookupJoin(
1854 ::prost::alloc::boxed::Box<super::VectorIndexLookupJoinNode>,
1855 ),
1856 #[prost(message, tag = "156")]
1857 IcebergWithPkIndexWriter(
1858 ::prost::alloc::boxed::Box<super::IcebergWithPkIndexWriterNode>,
1859 ),
1860 #[prost(message, tag = "157")]
1861 IcebergWithPkIndexDvMerger(
1862 ::prost::alloc::boxed::Box<super::IcebergWithPkIndexDvMergerNode>,
1863 ),
1864 }
1865}
1866#[derive(prost_helpers::AnyPB)]
1880#[derive(Clone, PartialEq, ::prost::Message)]
1881pub struct DispatchOutputMapping {
1882 #[prost(uint32, repeated, tag = "1")]
1884 pub indices: ::prost::alloc::vec::Vec<u32>,
1885 #[prost(message, repeated, tag = "2")]
1891 pub types: ::prost::alloc::vec::Vec<dispatch_output_mapping::TypePair>,
1892}
1893pub mod dispatch_output_mapping {
1895 #[derive(prost_helpers::AnyPB)]
1896 #[derive(Clone, PartialEq, ::prost::Message)]
1897 pub struct TypePair {
1898 #[prost(message, optional, tag = "1")]
1899 pub upstream: ::core::option::Option<super::super::data::DataType>,
1900 #[prost(message, optional, tag = "2")]
1901 pub downstream: ::core::option::Option<super::super::data::DataType>,
1902 }
1903}
1904#[derive(prost_helpers::AnyPB)]
1907#[derive(Clone, PartialEq, ::prost::Message)]
1908pub struct DispatchStrategy {
1909 #[prost(enumeration = "DispatcherType", tag = "1")]
1910 pub r#type: i32,
1911 #[prost(uint32, repeated, tag = "2")]
1912 pub dist_key_indices: ::prost::alloc::vec::Vec<u32>,
1913 #[prost(message, optional, tag = "3")]
1914 pub output_mapping: ::core::option::Option<DispatchOutputMapping>,
1915}
1916#[derive(prost_helpers::AnyPB)]
1919#[derive(Clone, PartialEq, ::prost::Message)]
1920pub struct Dispatcher {
1921 #[prost(enumeration = "DispatcherType", tag = "1")]
1922 pub r#type: i32,
1923 #[prost(uint32, repeated, tag = "2")]
1926 pub dist_key_indices: ::prost::alloc::vec::Vec<u32>,
1927 #[prost(message, optional, tag = "6")]
1929 pub output_mapping: ::core::option::Option<DispatchOutputMapping>,
1930 #[prost(message, optional, tag = "3")]
1933 pub hash_mapping: ::core::option::Option<ActorMapping>,
1934 #[prost(uint32, tag = "4", wrapper = "crate::id::FragmentId")]
1937 pub dispatcher_id: crate::id::FragmentId,
1938 #[prost(uint32, repeated, tag = "5", wrapper = "crate::id::ActorId")]
1940 pub downstream_actor_id: ::prost::alloc::vec::Vec<crate::id::ActorId>,
1941}
1942#[derive(prost_helpers::AnyPB)]
1944#[derive(Clone, PartialEq, ::prost::Message)]
1945pub struct StreamActor {
1946 #[prost(uint32, tag = "1", wrapper = "crate::id::ActorId")]
1947 pub actor_id: crate::id::ActorId,
1948 #[prost(uint32, tag = "2", wrapper = "crate::id::FragmentId")]
1949 pub fragment_id: crate::id::FragmentId,
1950 #[prost(message, repeated, tag = "4")]
1951 pub dispatcher: ::prost::alloc::vec::Vec<Dispatcher>,
1952 #[prost(message, optional, tag = "8")]
1955 pub vnode_bitmap: ::core::option::Option<super::common::Buffer>,
1956 #[prost(string, tag = "9")]
1958 pub mview_definition: ::prost::alloc::string::String,
1959 #[prost(message, optional, tag = "10")]
1961 pub expr_context: ::core::option::Option<super::plan_common::ExprContext>,
1962 #[prost(string, tag = "11")]
1964 pub config_override: ::prost::alloc::string::String,
1965}
1966#[derive(prost_helpers::AnyPB)]
1968#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1969pub struct StreamContext {
1970 #[prost(string, tag = "1")]
1972 pub timezone: ::prost::alloc::string::String,
1973 #[prost(string, tag = "2")]
1975 pub config_override: ::prost::alloc::string::String,
1976}
1977#[derive(prost_helpers::AnyPB)]
1978#[derive(Clone, PartialEq, ::prost::Message)]
1979pub struct BackfillOrder {
1980 #[prost(map = "uint32, message", tag = "1", wrapper = "crate::id::RelationId")]
1981 pub order: ::std::collections::HashMap<
1982 crate::id::RelationId,
1983 super::common::Uint32Vector,
1984 >,
1985}
1986#[derive(prost_helpers::AnyPB)]
1991#[derive(Clone, PartialEq, ::prost::Message)]
1992pub struct StreamFragmentGraph {
1993 #[prost(map = "uint32, message", tag = "1", wrapper = "crate::id::FragmentId")]
1995 pub fragments: ::std::collections::HashMap<
1996 crate::id::FragmentId,
1997 stream_fragment_graph::StreamFragment,
1998 >,
1999 #[prost(message, repeated, tag = "2")]
2001 pub edges: ::prost::alloc::vec::Vec<stream_fragment_graph::StreamFragmentEdge>,
2002 #[prost(uint32, repeated, tag = "3", wrapper = "crate::id::TableId")]
2003 pub dependent_table_ids: ::prost::alloc::vec::Vec<crate::id::TableId>,
2004 #[prost(uint32, tag = "4")]
2005 pub table_ids_cnt: u32,
2006 #[prost(message, optional, tag = "5")]
2007 pub ctx: ::core::option::Option<StreamContext>,
2008 #[prost(message, optional, tag = "6")]
2010 pub parallelism: ::core::option::Option<stream_fragment_graph::Parallelism>,
2011 #[prost(message, optional, tag = "9")]
2013 pub backfill_parallelism: ::core::option::Option<stream_fragment_graph::Parallelism>,
2014 #[prost(string, tag = "10")]
2016 pub adaptive_parallelism_strategy: ::prost::alloc::string::String,
2017 #[prost(string, tag = "11")]
2019 pub backfill_adaptive_parallelism_strategy: ::prost::alloc::string::String,
2020 #[prost(uint32, tag = "7")]
2030 pub max_parallelism: u32,
2031 #[prost(message, optional, tag = "8")]
2033 pub backfill_order: ::core::option::Option<BackfillOrder>,
2034}
2035pub mod stream_fragment_graph {
2037 #[derive(prost_helpers::AnyPB)]
2038 #[derive(Clone, PartialEq, ::prost::Message)]
2039 pub struct StreamFragment {
2040 #[prost(uint32, tag = "1", wrapper = "crate::id::FragmentId")]
2042 pub fragment_id: crate::id::FragmentId,
2043 #[prost(message, optional, tag = "2")]
2045 pub node: ::core::option::Option<super::StreamNode>,
2046 #[prost(uint32, tag = "3")]
2048 pub fragment_type_mask: u32,
2049 #[prost(bool, tag = "4")]
2053 pub requires_singleton: bool,
2054 }
2055 #[derive(prost_helpers::AnyPB)]
2056 #[derive(Clone, PartialEq, ::prost::Message)]
2057 pub struct StreamFragmentEdge {
2058 #[prost(message, optional, tag = "1")]
2060 pub dispatch_strategy: ::core::option::Option<super::DispatchStrategy>,
2061 #[prost(uint64, tag = "3")]
2065 pub link_id: u64,
2066 #[prost(uint32, tag = "4", wrapper = "crate::id::FragmentId")]
2067 pub upstream_id: crate::id::FragmentId,
2068 #[prost(uint32, tag = "5", wrapper = "crate::id::FragmentId")]
2069 pub downstream_id: crate::id::FragmentId,
2070 }
2071 #[derive(prost_helpers::AnyPB)]
2072 #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2073 pub struct Parallelism {
2074 #[prost(uint64, tag = "1")]
2075 pub parallelism: u64,
2076 }
2077}
2078#[derive(prost_helpers::AnyPB)]
2080#[derive(Clone, PartialEq, ::prost::Message)]
2081pub struct SinkSchemaChange {
2082 #[prost(message, repeated, tag = "1")]
2085 pub original_schema: ::prost::alloc::vec::Vec<super::plan_common::Field>,
2086 #[prost(oneof = "sink_schema_change::Op", tags = "2, 3")]
2088 pub op: ::core::option::Option<sink_schema_change::Op>,
2089}
2090pub mod sink_schema_change {
2092 #[derive(prost_helpers::AnyPB)]
2094 #[derive(Clone, PartialEq, ::prost::Oneof)]
2095 pub enum Op {
2096 #[prost(message, tag = "2")]
2098 AddColumns(super::SinkAddColumnsOp),
2099 #[prost(message, tag = "3")]
2101 DropColumns(super::SinkDropColumnsOp),
2102 }
2103}
2104#[derive(prost_helpers::AnyPB)]
2106#[derive(Clone, PartialEq, ::prost::Message)]
2107pub struct SinkAddColumnsOp {
2108 #[prost(message, repeated, tag = "1")]
2110 pub fields: ::prost::alloc::vec::Vec<super::plan_common::Field>,
2111}
2112#[derive(prost_helpers::AnyPB)]
2114#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2115pub struct SinkDropColumnsOp {
2116 #[prost(string, repeated, tag = "1")]
2118 pub column_names: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2119}
2120#[derive(prost_helpers::AnyPB)]
2121#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2122#[repr(i32)]
2123pub enum SinkLogStoreType {
2124 Unspecified = 0,
2126 KvLogStore = 1,
2127 InMemoryLogStore = 2,
2128}
2129impl SinkLogStoreType {
2130 pub fn as_str_name(&self) -> &'static str {
2135 match self {
2136 Self::Unspecified => "SINK_LOG_STORE_TYPE_UNSPECIFIED",
2137 Self::KvLogStore => "SINK_LOG_STORE_TYPE_KV_LOG_STORE",
2138 Self::InMemoryLogStore => "SINK_LOG_STORE_TYPE_IN_MEMORY_LOG_STORE",
2139 }
2140 }
2141 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2143 match value {
2144 "SINK_LOG_STORE_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
2145 "SINK_LOG_STORE_TYPE_KV_LOG_STORE" => Some(Self::KvLogStore),
2146 "SINK_LOG_STORE_TYPE_IN_MEMORY_LOG_STORE" => Some(Self::InMemoryLogStore),
2147 _ => None,
2148 }
2149 }
2150}
2151#[derive(prost_helpers::AnyPB)]
2152#[derive(prost_helpers::Version)]
2153#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2154#[repr(i32)]
2155pub enum AggNodeVersion {
2156 Unspecified = 0,
2157 Issue12140 = 1,
2159 Issue13465 = 2,
2161}
2162impl AggNodeVersion {
2163 pub fn as_str_name(&self) -> &'static str {
2168 match self {
2169 Self::Unspecified => "AGG_NODE_VERSION_UNSPECIFIED",
2170 Self::Issue12140 => "AGG_NODE_VERSION_ISSUE_12140",
2171 Self::Issue13465 => "AGG_NODE_VERSION_ISSUE_13465",
2172 }
2173 }
2174 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2176 match value {
2177 "AGG_NODE_VERSION_UNSPECIFIED" => Some(Self::Unspecified),
2178 "AGG_NODE_VERSION_ISSUE_12140" => Some(Self::Issue12140),
2179 "AGG_NODE_VERSION_ISSUE_13465" => Some(Self::Issue13465),
2180 _ => None,
2181 }
2182 }
2183}
2184#[derive(prost_helpers::AnyPB)]
2185#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2186#[repr(i32)]
2187pub enum InequalityType {
2188 Unspecified = 0,
2189 LessThan = 1,
2190 LessThanOrEqual = 2,
2191 GreaterThan = 3,
2192 GreaterThanOrEqual = 4,
2193}
2194impl InequalityType {
2195 pub fn as_str_name(&self) -> &'static str {
2200 match self {
2201 Self::Unspecified => "INEQUALITY_TYPE_UNSPECIFIED",
2202 Self::LessThan => "INEQUALITY_TYPE_LESS_THAN",
2203 Self::LessThanOrEqual => "INEQUALITY_TYPE_LESS_THAN_OR_EQUAL",
2204 Self::GreaterThan => "INEQUALITY_TYPE_GREATER_THAN",
2205 Self::GreaterThanOrEqual => "INEQUALITY_TYPE_GREATER_THAN_OR_EQUAL",
2206 }
2207 }
2208 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2210 match value {
2211 "INEQUALITY_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
2212 "INEQUALITY_TYPE_LESS_THAN" => Some(Self::LessThan),
2213 "INEQUALITY_TYPE_LESS_THAN_OR_EQUAL" => Some(Self::LessThanOrEqual),
2214 "INEQUALITY_TYPE_GREATER_THAN" => Some(Self::GreaterThan),
2215 "INEQUALITY_TYPE_GREATER_THAN_OR_EQUAL" => Some(Self::GreaterThanOrEqual),
2216 _ => None,
2217 }
2218 }
2219}
2220#[derive(prost_helpers::AnyPB)]
2221#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2222#[repr(i32)]
2223pub enum JoinEncodingType {
2224 Unspecified = 0,
2225 MemoryOptimized = 1,
2226 CpuOptimized = 2,
2227}
2228impl JoinEncodingType {
2229 pub fn as_str_name(&self) -> &'static str {
2234 match self {
2235 Self::Unspecified => "UNSPECIFIED",
2236 Self::MemoryOptimized => "MEMORY_OPTIMIZED",
2237 Self::CpuOptimized => "CPU_OPTIMIZED",
2238 }
2239 }
2240 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2242 match value {
2243 "UNSPECIFIED" => Some(Self::Unspecified),
2244 "MEMORY_OPTIMIZED" => Some(Self::MemoryOptimized),
2245 "CPU_OPTIMIZED" => Some(Self::CpuOptimized),
2246 _ => None,
2247 }
2248 }
2249}
2250#[derive(prost_helpers::AnyPB)]
2252#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2253#[repr(i32)]
2254pub enum StreamScanType {
2255 Unspecified = 0,
2256 Chain = 1,
2258 Rearrange = 2,
2260 Backfill = 3,
2262 UpstreamOnly = 4,
2264 ArrangementBackfill = 5,
2266 SnapshotBackfill = 6,
2268 CrossDbSnapshotBackfill = 7,
2270}
2271impl StreamScanType {
2272 pub fn as_str_name(&self) -> &'static str {
2277 match self {
2278 Self::Unspecified => "STREAM_SCAN_TYPE_UNSPECIFIED",
2279 Self::Chain => "STREAM_SCAN_TYPE_CHAIN",
2280 Self::Rearrange => "STREAM_SCAN_TYPE_REARRANGE",
2281 Self::Backfill => "STREAM_SCAN_TYPE_BACKFILL",
2282 Self::UpstreamOnly => "STREAM_SCAN_TYPE_UPSTREAM_ONLY",
2283 Self::ArrangementBackfill => "STREAM_SCAN_TYPE_ARRANGEMENT_BACKFILL",
2284 Self::SnapshotBackfill => "STREAM_SCAN_TYPE_SNAPSHOT_BACKFILL",
2285 Self::CrossDbSnapshotBackfill => {
2286 "STREAM_SCAN_TYPE_CROSS_DB_SNAPSHOT_BACKFILL"
2287 }
2288 }
2289 }
2290 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2292 match value {
2293 "STREAM_SCAN_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
2294 "STREAM_SCAN_TYPE_CHAIN" => Some(Self::Chain),
2295 "STREAM_SCAN_TYPE_REARRANGE" => Some(Self::Rearrange),
2296 "STREAM_SCAN_TYPE_BACKFILL" => Some(Self::Backfill),
2297 "STREAM_SCAN_TYPE_UPSTREAM_ONLY" => Some(Self::UpstreamOnly),
2298 "STREAM_SCAN_TYPE_ARRANGEMENT_BACKFILL" => Some(Self::ArrangementBackfill),
2299 "STREAM_SCAN_TYPE_SNAPSHOT_BACKFILL" => Some(Self::SnapshotBackfill),
2300 "STREAM_SCAN_TYPE_CROSS_DB_SNAPSHOT_BACKFILL" => {
2301 Some(Self::CrossDbSnapshotBackfill)
2302 }
2303 _ => None,
2304 }
2305 }
2306}
2307#[derive(prost_helpers::AnyPB)]
2308#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2309#[repr(i32)]
2310pub enum OverWindowCachePolicy {
2311 Unspecified = 0,
2312 Full = 1,
2313 Recent = 2,
2314 RecentFirstN = 3,
2315 RecentLastN = 4,
2316}
2317impl OverWindowCachePolicy {
2318 pub fn as_str_name(&self) -> &'static str {
2323 match self {
2324 Self::Unspecified => "OVER_WINDOW_CACHE_POLICY_UNSPECIFIED",
2325 Self::Full => "OVER_WINDOW_CACHE_POLICY_FULL",
2326 Self::Recent => "OVER_WINDOW_CACHE_POLICY_RECENT",
2327 Self::RecentFirstN => "OVER_WINDOW_CACHE_POLICY_RECENT_FIRST_N",
2328 Self::RecentLastN => "OVER_WINDOW_CACHE_POLICY_RECENT_LAST_N",
2329 }
2330 }
2331 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2333 match value {
2334 "OVER_WINDOW_CACHE_POLICY_UNSPECIFIED" => Some(Self::Unspecified),
2335 "OVER_WINDOW_CACHE_POLICY_FULL" => Some(Self::Full),
2336 "OVER_WINDOW_CACHE_POLICY_RECENT" => Some(Self::Recent),
2337 "OVER_WINDOW_CACHE_POLICY_RECENT_FIRST_N" => Some(Self::RecentFirstN),
2338 "OVER_WINDOW_CACHE_POLICY_RECENT_LAST_N" => Some(Self::RecentLastN),
2339 _ => None,
2340 }
2341 }
2342}
2343#[derive(prost_helpers::AnyPB)]
2344#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2345#[repr(i32)]
2346pub enum DispatcherType {
2347 Unspecified = 0,
2348 Hash = 1,
2350 Broadcast = 2,
2355 Simple = 3,
2357 NoShuffle = 4,
2361}
2362impl DispatcherType {
2363 pub fn as_str_name(&self) -> &'static str {
2368 match self {
2369 Self::Unspecified => "DISPATCHER_TYPE_UNSPECIFIED",
2370 Self::Hash => "DISPATCHER_TYPE_HASH",
2371 Self::Broadcast => "DISPATCHER_TYPE_BROADCAST",
2372 Self::Simple => "DISPATCHER_TYPE_SIMPLE",
2373 Self::NoShuffle => "DISPATCHER_TYPE_NO_SHUFFLE",
2374 }
2375 }
2376 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2378 match value {
2379 "DISPATCHER_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
2380 "DISPATCHER_TYPE_HASH" => Some(Self::Hash),
2381 "DISPATCHER_TYPE_BROADCAST" => Some(Self::Broadcast),
2382 "DISPATCHER_TYPE_SIMPLE" => Some(Self::Simple),
2383 "DISPATCHER_TYPE_NO_SHUFFLE" => Some(Self::NoShuffle),
2384 _ => None,
2385 }
2386 }
2387}