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}
1238#[derive(prost_helpers::AnyPB)]
1240#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1241pub struct StreamCdcScanOptions {
1242 #[prost(bool, tag = "1")]
1244 pub disable_backfill: bool,
1245 #[prost(uint32, tag = "2")]
1246 pub snapshot_barrier_interval: u32,
1247 #[prost(uint32, tag = "3")]
1248 pub snapshot_batch_size: u32,
1249 #[prost(uint32, tag = "4")]
1250 pub backfill_parallelism: u32,
1251 #[prost(uint64, tag = "5")]
1252 pub backfill_num_rows_per_split: u64,
1253 #[prost(bool, tag = "6")]
1254 pub backfill_as_even_splits: bool,
1255 #[prost(uint32, tag = "7")]
1256 pub backfill_split_pk_column_index: u32,
1257}
1258#[derive(prost_helpers::AnyPB)]
1259#[derive(Clone, PartialEq, ::prost::Message)]
1260pub struct StreamCdcScanNode {
1261 #[prost(uint32, tag = "1", wrapper = "crate::id::TableId")]
1262 pub table_id: crate::id::TableId,
1263 #[prost(int32, repeated, tag = "2")]
1266 pub upstream_column_ids: ::prost::alloc::vec::Vec<i32>,
1267 #[prost(uint32, repeated, tag = "3")]
1269 pub output_indices: ::prost::alloc::vec::Vec<u32>,
1270 #[prost(message, optional, tag = "4")]
1272 pub state_table: ::core::option::Option<super::catalog::Table>,
1273 #[prost(message, optional, tag = "5")]
1275 pub cdc_table_desc: ::core::option::Option<super::plan_common::ExternalTableDesc>,
1276 #[prost(uint32, optional, tag = "6")]
1278 pub rate_limit: ::core::option::Option<u32>,
1279 #[prost(bool, tag = "7")]
1282 pub disable_backfill: bool,
1283 #[prost(message, optional, tag = "8")]
1284 pub options: ::core::option::Option<StreamCdcScanOptions>,
1285}
1286#[derive(prost_helpers::AnyPB)]
1290#[derive(Clone, PartialEq, ::prost::Message)]
1291pub struct BatchPlanNode {
1292 #[prost(message, optional, tag = "1")]
1293 pub table_desc: ::core::option::Option<super::plan_common::StorageTableDesc>,
1294 #[prost(int32, repeated, tag = "2")]
1295 pub column_ids: ::prost::alloc::vec::Vec<i32>,
1296}
1297#[derive(prost_helpers::AnyPB)]
1298#[derive(Clone, PartialEq, ::prost::Message)]
1299pub struct ArrangementInfo {
1300 #[prost(message, repeated, tag = "1")]
1303 pub arrange_key_orders: ::prost::alloc::vec::Vec<super::common::ColumnOrder>,
1304 #[prost(message, repeated, tag = "2")]
1306 pub column_descs: ::prost::alloc::vec::Vec<super::plan_common::ColumnDesc>,
1307 #[prost(message, optional, tag = "4")]
1309 pub table_desc: ::core::option::Option<super::plan_common::StorageTableDesc>,
1310 #[prost(uint32, repeated, tag = "5")]
1312 pub output_col_idx: ::prost::alloc::vec::Vec<u32>,
1313}
1314#[derive(prost_helpers::AnyPB)]
1317#[derive(Clone, PartialEq, ::prost::Message)]
1318pub struct ArrangeNode {
1319 #[prost(message, optional, tag = "1")]
1321 pub table_info: ::core::option::Option<ArrangementInfo>,
1322 #[prost(uint32, repeated, tag = "2")]
1324 pub distribution_key: ::prost::alloc::vec::Vec<u32>,
1325 #[prost(message, optional, tag = "3")]
1327 pub table: ::core::option::Option<super::catalog::Table>,
1328}
1329#[derive(prost_helpers::AnyPB)]
1331#[derive(Clone, PartialEq, ::prost::Message)]
1332pub struct LookupNode {
1333 #[prost(int32, repeated, tag = "1")]
1335 pub arrange_key: ::prost::alloc::vec::Vec<i32>,
1336 #[prost(int32, repeated, tag = "2")]
1338 pub stream_key: ::prost::alloc::vec::Vec<i32>,
1339 #[prost(bool, tag = "3")]
1341 pub use_current_epoch: bool,
1342 #[prost(int32, repeated, tag = "4")]
1346 pub column_mapping: ::prost::alloc::vec::Vec<i32>,
1347 #[prost(message, optional, tag = "7")]
1349 pub arrangement_table_info: ::core::option::Option<ArrangementInfo>,
1350 #[prost(oneof = "lookup_node::ArrangementTableId", tags = "5, 6")]
1351 pub arrangement_table_id: ::core::option::Option<lookup_node::ArrangementTableId>,
1352}
1353pub mod lookup_node {
1355 #[derive(prost_helpers::AnyPB)]
1356 #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Oneof)]
1357 pub enum ArrangementTableId {
1358 #[prost(uint32, tag = "5", wrapper = "crate::id::TableId")]
1360 TableId(crate::id::TableId),
1361 #[prost(uint32, tag = "6", wrapper = "crate::id::TableId")]
1363 IndexId(crate::id::TableId),
1364 }
1365}
1366#[derive(prost_helpers::AnyPB)]
1368#[derive(Clone, PartialEq, ::prost::Message)]
1369pub struct WatermarkFilterNode {
1370 #[prost(message, repeated, tag = "1")]
1372 pub watermark_descs: ::prost::alloc::vec::Vec<super::catalog::WatermarkDesc>,
1373 #[prost(message, repeated, tag = "2")]
1375 pub tables: ::prost::alloc::vec::Vec<super::catalog::Table>,
1376}
1377#[derive(prost_helpers::AnyPB)]
1379#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1380pub struct UnionNode {}
1381#[derive(prost_helpers::AnyPB)]
1383#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1384pub struct LookupUnionNode {
1385 #[prost(uint32, repeated, tag = "1")]
1386 pub order: ::prost::alloc::vec::Vec<u32>,
1387}
1388#[derive(prost_helpers::AnyPB)]
1389#[derive(Clone, PartialEq, ::prost::Message)]
1390pub struct ExpandNode {
1391 #[prost(message, repeated, tag = "1")]
1392 pub column_subsets: ::prost::alloc::vec::Vec<expand_node::Subset>,
1393}
1394pub mod expand_node {
1396 #[derive(prost_helpers::AnyPB)]
1397 #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1398 pub struct Subset {
1399 #[prost(uint32, repeated, tag = "1")]
1400 pub column_indices: ::prost::alloc::vec::Vec<u32>,
1401 }
1402}
1403#[derive(prost_helpers::AnyPB)]
1404#[derive(Clone, PartialEq, ::prost::Message)]
1405pub struct ProjectSetNode {
1406 #[prost(message, repeated, tag = "1")]
1407 pub select_list: ::prost::alloc::vec::Vec<super::expr::ProjectSetSelectItem>,
1408 #[prost(uint32, repeated, tag = "2")]
1412 pub watermark_input_cols: ::prost::alloc::vec::Vec<u32>,
1413 #[prost(uint32, repeated, tag = "3")]
1414 pub watermark_expr_indices: ::prost::alloc::vec::Vec<u32>,
1415 #[prost(uint32, repeated, tag = "4")]
1416 pub nondecreasing_exprs: ::prost::alloc::vec::Vec<u32>,
1417}
1418#[derive(prost_helpers::AnyPB)]
1420#[derive(Clone, PartialEq, ::prost::Message)]
1421pub struct SortNode {
1422 #[prost(message, optional, tag = "1")]
1424 pub state_table: ::core::option::Option<super::catalog::Table>,
1425 #[prost(uint32, tag = "2")]
1427 pub sort_column_index: u32,
1428}
1429#[derive(prost_helpers::AnyPB)]
1431#[derive(Clone, PartialEq, ::prost::Message)]
1432pub struct DmlNode {
1433 #[prost(uint32, tag = "1", wrapper = "crate::id::TableId")]
1435 pub table_id: crate::id::TableId,
1436 #[prost(uint64, tag = "3")]
1438 pub table_version_id: u64,
1439 #[prost(message, repeated, tag = "2")]
1441 pub column_descs: ::prost::alloc::vec::Vec<super::plan_common::ColumnDesc>,
1442 #[prost(uint32, optional, tag = "4")]
1443 pub rate_limit: ::core::option::Option<u32>,
1444}
1445#[derive(prost_helpers::AnyPB)]
1446#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1447pub struct RowIdGenNode {
1448 #[prost(uint64, tag = "1")]
1449 pub row_id_index: u64,
1450}
1451#[derive(prost_helpers::AnyPB)]
1452#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1453pub struct NowModeUpdateCurrent {}
1454#[derive(prost_helpers::AnyPB)]
1455#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1456pub struct NowModeGenerateSeries {
1457 #[prost(message, optional, tag = "1")]
1458 pub start_timestamp: ::core::option::Option<super::data::Datum>,
1459 #[prost(message, optional, tag = "2")]
1460 pub interval: ::core::option::Option<super::data::Datum>,
1461}
1462#[derive(prost_helpers::AnyPB)]
1463#[derive(Clone, PartialEq, ::prost::Message)]
1464pub struct NowNode {
1465 #[prost(message, optional, tag = "1")]
1467 pub state_table: ::core::option::Option<super::catalog::Table>,
1468 #[prost(oneof = "now_node::Mode", tags = "101, 102")]
1469 pub mode: ::core::option::Option<now_node::Mode>,
1470}
1471pub mod now_node {
1473 #[derive(prost_helpers::AnyPB)]
1474 #[derive(Clone, PartialEq, Eq, Hash, ::prost::Oneof)]
1475 pub enum Mode {
1476 #[prost(message, tag = "101")]
1477 UpdateCurrent(super::NowModeUpdateCurrent),
1478 #[prost(message, tag = "102")]
1479 GenerateSeries(super::NowModeGenerateSeries),
1480 }
1481}
1482#[derive(prost_helpers::AnyPB)]
1483#[derive(Clone, PartialEq, ::prost::Message)]
1484pub struct ValuesNode {
1485 #[prost(message, repeated, tag = "1")]
1486 pub tuples: ::prost::alloc::vec::Vec<values_node::ExprTuple>,
1487 #[prost(message, repeated, tag = "2")]
1488 pub fields: ::prost::alloc::vec::Vec<super::plan_common::Field>,
1489}
1490pub mod values_node {
1492 #[derive(prost_helpers::AnyPB)]
1493 #[derive(Clone, PartialEq, ::prost::Message)]
1494 pub struct ExprTuple {
1495 #[prost(message, repeated, tag = "1")]
1496 pub cells: ::prost::alloc::vec::Vec<super::super::expr::ExprNode>,
1497 }
1498}
1499#[derive(prost_helpers::AnyPB)]
1500#[derive(Clone, PartialEq, ::prost::Message)]
1501pub struct DedupNode {
1502 #[prost(message, optional, tag = "1")]
1503 pub state_table: ::core::option::Option<super::catalog::Table>,
1504 #[prost(uint32, repeated, tag = "2")]
1505 pub dedup_column_indices: ::prost::alloc::vec::Vec<u32>,
1506}
1507#[derive(prost_helpers::AnyPB)]
1508#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1509pub struct NoOpNode {}
1510#[derive(prost_helpers::AnyPB)]
1511#[derive(Clone, PartialEq, ::prost::Message)]
1512pub struct EowcOverWindowNode {
1513 #[prost(message, repeated, tag = "1")]
1514 pub calls: ::prost::alloc::vec::Vec<super::expr::WindowFunction>,
1515 #[prost(uint32, repeated, tag = "2")]
1516 pub partition_by: ::prost::alloc::vec::Vec<u32>,
1517 #[prost(message, repeated, tag = "3")]
1519 pub order_by: ::prost::alloc::vec::Vec<super::common::ColumnOrder>,
1520 #[prost(message, optional, tag = "4")]
1521 pub state_table: ::core::option::Option<super::catalog::Table>,
1522 #[prost(message, optional, tag = "5")]
1525 pub intermediate_state_table: ::core::option::Option<super::catalog::Table>,
1526}
1527#[derive(prost_helpers::AnyPB)]
1528#[derive(Clone, PartialEq, ::prost::Message)]
1529pub struct OverWindowNode {
1530 #[prost(message, repeated, tag = "1")]
1531 pub calls: ::prost::alloc::vec::Vec<super::expr::WindowFunction>,
1532 #[prost(uint32, repeated, tag = "2")]
1533 pub partition_by: ::prost::alloc::vec::Vec<u32>,
1534 #[prost(message, repeated, tag = "3")]
1535 pub order_by: ::prost::alloc::vec::Vec<super::common::ColumnOrder>,
1536 #[prost(message, optional, tag = "4")]
1537 pub state_table: ::core::option::Option<super::catalog::Table>,
1538 #[deprecated]
1540 #[prost(enumeration = "OverWindowCachePolicy", tag = "5")]
1541 pub cache_policy: i32,
1542}
1543#[derive(prost_helpers::AnyPB)]
1544#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1545pub struct LocalApproxPercentileNode {
1546 #[prost(double, tag = "1")]
1547 pub base: f64,
1548 #[prost(uint32, tag = "2")]
1549 pub percentile_index: u32,
1550}
1551#[derive(prost_helpers::AnyPB)]
1552#[derive(Clone, PartialEq, ::prost::Message)]
1553pub struct GlobalApproxPercentileNode {
1554 #[prost(double, tag = "1")]
1555 pub base: f64,
1556 #[prost(double, tag = "2")]
1557 pub quantile: f64,
1558 #[prost(message, optional, tag = "3")]
1559 pub bucket_state_table: ::core::option::Option<super::catalog::Table>,
1560 #[prost(message, optional, tag = "4")]
1561 pub count_state_table: ::core::option::Option<super::catalog::Table>,
1562}
1563#[derive(prost_helpers::AnyPB)]
1564#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1565pub struct RowMergeNode {
1566 #[prost(message, optional, tag = "1")]
1567 pub lhs_mapping: ::core::option::Option<super::catalog::ColIndexMapping>,
1568 #[prost(message, optional, tag = "2")]
1569 pub rhs_mapping: ::core::option::Option<super::catalog::ColIndexMapping>,
1570}
1571#[derive(prost_helpers::AnyPB)]
1572#[derive(Clone, PartialEq, ::prost::Message)]
1573pub struct SyncLogStoreNode {
1574 #[prost(message, optional, tag = "1")]
1575 pub log_store_table: ::core::option::Option<super::catalog::Table>,
1576 #[deprecated]
1578 #[prost(uint32, optional, tag = "2")]
1579 pub pause_duration_ms: ::core::option::Option<u32>,
1580 #[deprecated]
1582 #[prost(uint32, optional, tag = "3")]
1583 pub buffer_size: ::core::option::Option<u32>,
1584 #[prost(bool, tag = "4")]
1585 pub aligned: bool,
1586}
1587#[derive(prost_helpers::AnyPB)]
1588#[derive(Clone, PartialEq, ::prost::Message)]
1589pub struct MaterializedExprsNode {
1590 #[prost(message, repeated, tag = "1")]
1591 pub exprs: ::prost::alloc::vec::Vec<super::expr::ExprNode>,
1592 #[prost(message, optional, tag = "2")]
1593 pub state_table: ::core::option::Option<super::catalog::Table>,
1594 #[prost(uint32, optional, tag = "3")]
1595 pub state_clean_col_idx: ::core::option::Option<u32>,
1596}
1597#[derive(prost_helpers::AnyPB)]
1598#[derive(Clone, PartialEq, ::prost::Message)]
1599pub struct VectorIndexWriteNode {
1600 #[prost(message, optional, tag = "1")]
1601 pub table: ::core::option::Option<super::catalog::Table>,
1602}
1603#[derive(prost_helpers::AnyPB)]
1604#[derive(Clone, PartialEq, ::prost::Message)]
1605pub struct VectorIndexLookupJoinNode {
1606 #[prost(message, optional, tag = "1")]
1607 pub reader_desc: ::core::option::Option<super::plan_common::VectorIndexReaderDesc>,
1608 #[prost(uint32, tag = "2")]
1609 pub vector_column_idx: u32,
1610}
1611#[derive(prost_helpers::AnyPB)]
1612#[derive(Clone, PartialEq, ::prost::Message)]
1613pub struct UpstreamSinkUnionNode {
1614 #[prost(message, repeated, tag = "1")]
1617 pub init_upstreams: ::prost::alloc::vec::Vec<UpstreamSinkInfo>,
1618}
1619#[derive(prost_helpers::AnyPB)]
1620#[derive(Clone, PartialEq, ::prost::Message)]
1621pub struct LocalityProviderNode {
1622 #[prost(uint32, repeated, tag = "1")]
1624 pub locality_columns: ::prost::alloc::vec::Vec<u32>,
1625 #[prost(message, optional, tag = "2")]
1627 pub state_table: ::core::option::Option<super::catalog::Table>,
1628 #[prost(message, optional, tag = "3")]
1630 pub progress_table: ::core::option::Option<super::catalog::Table>,
1631}
1632#[derive(prost_helpers::AnyPB)]
1633#[derive(Clone, PartialEq, ::prost::Message)]
1634pub struct EowcGapFillNode {
1635 #[prost(uint32, tag = "1")]
1636 pub time_column_index: u32,
1637 #[prost(message, optional, tag = "2")]
1638 pub interval: ::core::option::Option<super::expr::ExprNode>,
1639 #[prost(uint32, repeated, tag = "3")]
1640 pub fill_columns: ::prost::alloc::vec::Vec<u32>,
1641 #[prost(string, repeated, tag = "4")]
1642 pub fill_strategies: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1643 #[prost(message, optional, tag = "5")]
1644 pub buffer_table: ::core::option::Option<super::catalog::Table>,
1645 #[prost(message, optional, tag = "6")]
1646 pub prev_row_table: ::core::option::Option<super::catalog::Table>,
1647}
1648#[derive(prost_helpers::AnyPB)]
1649#[derive(Clone, PartialEq, ::prost::Message)]
1650pub struct GapFillNode {
1651 #[prost(uint32, tag = "1")]
1652 pub time_column_index: u32,
1653 #[prost(message, optional, tag = "2")]
1654 pub interval: ::core::option::Option<super::expr::ExprNode>,
1655 #[prost(uint32, repeated, tag = "3")]
1656 pub fill_columns: ::prost::alloc::vec::Vec<u32>,
1657 #[prost(string, repeated, tag = "4")]
1658 pub fill_strategies: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1659 #[prost(message, optional, tag = "5")]
1660 pub state_table: ::core::option::Option<super::catalog::Table>,
1661}
1662#[derive(prost_helpers::AnyPB)]
1663#[derive(Clone, PartialEq, ::prost::Message)]
1664pub struct StreamNode {
1665 #[prost(uint64, tag = "1", wrapper = "crate::id::StreamNodeLocalOperatorId")]
1668 pub operator_id: crate::id::StreamNodeLocalOperatorId,
1669 #[prost(message, repeated, tag = "3")]
1671 pub input: ::prost::alloc::vec::Vec<StreamNode>,
1672 #[prost(uint32, repeated, tag = "2")]
1673 pub stream_key: ::prost::alloc::vec::Vec<u32>,
1674 #[prost(enumeration = "stream_node::StreamKind", tag = "24")]
1675 pub stream_kind: i32,
1676 #[prost(string, tag = "18")]
1677 pub identity: ::prost::alloc::string::String,
1678 #[prost(message, repeated, tag = "19")]
1680 pub fields: ::prost::alloc::vec::Vec<super::plan_common::Field>,
1681 #[prost(
1682 oneof = "stream_node::NodeBody",
1683 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"
1684 )]
1685 pub node_body: ::core::option::Option<stream_node::NodeBody>,
1686}
1687pub mod stream_node {
1689 #[derive(prost_helpers::AnyPB)]
1692 #[derive(
1693 Clone,
1694 Copy,
1695 Debug,
1696 PartialEq,
1697 Eq,
1698 Hash,
1699 PartialOrd,
1700 Ord,
1701 ::prost::Enumeration
1702 )]
1703 #[repr(i32)]
1704 pub enum StreamKind {
1705 Retract = 0,
1707 AppendOnly = 1,
1708 Upsert = 2,
1709 }
1710 impl StreamKind {
1711 pub fn as_str_name(&self) -> &'static str {
1716 match self {
1717 Self::Retract => "STREAM_KIND_RETRACT",
1718 Self::AppendOnly => "STREAM_KIND_APPEND_ONLY",
1719 Self::Upsert => "STREAM_KIND_UPSERT",
1720 }
1721 }
1722 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1724 match value {
1725 "STREAM_KIND_RETRACT" => Some(Self::Retract),
1726 "STREAM_KIND_APPEND_ONLY" => Some(Self::AppendOnly),
1727 "STREAM_KIND_UPSERT" => Some(Self::Upsert),
1728 _ => None,
1729 }
1730 }
1731 }
1732 #[derive(prost_helpers::AnyPB)]
1733 #[derive(::enum_as_inner::EnumAsInner, ::strum::Display, ::strum::EnumDiscriminants)]
1734 #[strum_discriminants(derive(::strum::Display, Hash))]
1735 #[derive(Clone, PartialEq, ::prost::Oneof)]
1736 pub enum NodeBody {
1737 #[prost(message, tag = "100")]
1738 Source(::prost::alloc::boxed::Box<super::SourceNode>),
1739 #[prost(message, tag = "101")]
1740 Project(::prost::alloc::boxed::Box<super::ProjectNode>),
1741 #[prost(message, tag = "102")]
1742 Filter(::prost::alloc::boxed::Box<super::FilterNode>),
1743 #[prost(message, tag = "103")]
1744 Materialize(::prost::alloc::boxed::Box<super::MaterializeNode>),
1745 #[prost(message, tag = "104")]
1746 StatelessSimpleAgg(::prost::alloc::boxed::Box<super::SimpleAggNode>),
1747 #[prost(message, tag = "105")]
1748 SimpleAgg(::prost::alloc::boxed::Box<super::SimpleAggNode>),
1749 #[prost(message, tag = "106")]
1750 HashAgg(::prost::alloc::boxed::Box<super::HashAggNode>),
1751 #[prost(message, tag = "107")]
1752 AppendOnlyTopN(::prost::alloc::boxed::Box<super::TopNNode>),
1753 #[prost(message, tag = "108")]
1754 HashJoin(::prost::alloc::boxed::Box<super::HashJoinNode>),
1755 #[prost(message, tag = "109")]
1756 TopN(::prost::alloc::boxed::Box<super::TopNNode>),
1757 #[prost(message, tag = "110")]
1758 HopWindow(::prost::alloc::boxed::Box<super::HopWindowNode>),
1759 #[prost(message, tag = "111")]
1760 Merge(::prost::alloc::boxed::Box<super::MergeNode>),
1761 #[prost(message, tag = "112")]
1762 Exchange(::prost::alloc::boxed::Box<super::ExchangeNode>),
1763 #[prost(message, tag = "113")]
1764 StreamScan(::prost::alloc::boxed::Box<super::StreamScanNode>),
1765 #[prost(message, tag = "114")]
1766 BatchPlan(::prost::alloc::boxed::Box<super::BatchPlanNode>),
1767 #[prost(message, tag = "115")]
1768 Lookup(::prost::alloc::boxed::Box<super::LookupNode>),
1769 #[prost(message, tag = "116")]
1770 Arrange(::prost::alloc::boxed::Box<super::ArrangeNode>),
1771 #[prost(message, tag = "117")]
1772 LookupUnion(::prost::alloc::boxed::Box<super::LookupUnionNode>),
1773 #[prost(message, tag = "118")]
1774 Union(super::UnionNode),
1775 #[prost(message, tag = "119")]
1776 DeltaIndexJoin(::prost::alloc::boxed::Box<super::DeltaIndexJoinNode>),
1777 #[prost(message, tag = "120")]
1778 Sink(::prost::alloc::boxed::Box<super::SinkNode>),
1779 #[prost(message, tag = "121")]
1780 Expand(::prost::alloc::boxed::Box<super::ExpandNode>),
1781 #[prost(message, tag = "122")]
1782 DynamicFilter(::prost::alloc::boxed::Box<super::DynamicFilterNode>),
1783 #[prost(message, tag = "123")]
1784 ProjectSet(::prost::alloc::boxed::Box<super::ProjectSetNode>),
1785 #[prost(message, tag = "124")]
1786 GroupTopN(::prost::alloc::boxed::Box<super::GroupTopNNode>),
1787 #[prost(message, tag = "125")]
1788 Sort(::prost::alloc::boxed::Box<super::SortNode>),
1789 #[prost(message, tag = "126")]
1790 WatermarkFilter(::prost::alloc::boxed::Box<super::WatermarkFilterNode>),
1791 #[prost(message, tag = "127")]
1792 Dml(::prost::alloc::boxed::Box<super::DmlNode>),
1793 #[prost(message, tag = "128")]
1794 RowIdGen(::prost::alloc::boxed::Box<super::RowIdGenNode>),
1795 #[prost(message, tag = "129")]
1796 Now(::prost::alloc::boxed::Box<super::NowNode>),
1797 #[prost(message, tag = "130")]
1798 AppendOnlyGroupTopN(::prost::alloc::boxed::Box<super::GroupTopNNode>),
1799 #[prost(message, tag = "131")]
1800 TemporalJoin(::prost::alloc::boxed::Box<super::TemporalJoinNode>),
1801 #[prost(message, tag = "132")]
1802 BarrierRecv(::prost::alloc::boxed::Box<super::BarrierRecvNode>),
1803 #[prost(message, tag = "133")]
1804 Values(::prost::alloc::boxed::Box<super::ValuesNode>),
1805 #[prost(message, tag = "134")]
1806 AppendOnlyDedup(::prost::alloc::boxed::Box<super::DedupNode>),
1807 #[prost(message, tag = "135")]
1808 NoOp(super::NoOpNode),
1809 #[prost(message, tag = "136")]
1810 EowcOverWindow(::prost::alloc::boxed::Box<super::EowcOverWindowNode>),
1811 #[prost(message, tag = "137")]
1812 OverWindow(::prost::alloc::boxed::Box<super::OverWindowNode>),
1813 #[prost(message, tag = "138")]
1814 StreamFsFetch(::prost::alloc::boxed::Box<super::StreamFsFetchNode>),
1815 #[prost(message, tag = "139")]
1816 StreamCdcScan(::prost::alloc::boxed::Box<super::StreamCdcScanNode>),
1817 #[prost(message, tag = "140")]
1818 CdcFilter(::prost::alloc::boxed::Box<super::CdcFilterNode>),
1819 #[prost(message, tag = "142")]
1820 SourceBackfill(::prost::alloc::boxed::Box<super::SourceBackfillNode>),
1821 #[prost(message, tag = "143")]
1822 Changelog(::prost::alloc::boxed::Box<super::ChangeLogNode>),
1823 #[prost(message, tag = "144")]
1824 LocalApproxPercentile(
1825 ::prost::alloc::boxed::Box<super::LocalApproxPercentileNode>,
1826 ),
1827 #[prost(message, tag = "145")]
1828 GlobalApproxPercentile(
1829 ::prost::alloc::boxed::Box<super::GlobalApproxPercentileNode>,
1830 ),
1831 #[prost(message, tag = "146")]
1832 RowMerge(::prost::alloc::boxed::Box<super::RowMergeNode>),
1833 #[prost(message, tag = "147")]
1834 AsOfJoin(::prost::alloc::boxed::Box<super::AsOfJoinNode>),
1835 #[prost(message, tag = "148")]
1836 SyncLogStore(::prost::alloc::boxed::Box<super::SyncLogStoreNode>),
1837 #[prost(message, tag = "149")]
1838 MaterializedExprs(::prost::alloc::boxed::Box<super::MaterializedExprsNode>),
1839 #[prost(message, tag = "150")]
1840 VectorIndexWrite(::prost::alloc::boxed::Box<super::VectorIndexWriteNode>),
1841 #[prost(message, tag = "151")]
1842 UpstreamSinkUnion(::prost::alloc::boxed::Box<super::UpstreamSinkUnionNode>),
1843 #[prost(message, tag = "152")]
1844 LocalityProvider(::prost::alloc::boxed::Box<super::LocalityProviderNode>),
1845 #[prost(message, tag = "153")]
1846 EowcGapFill(::prost::alloc::boxed::Box<super::EowcGapFillNode>),
1847 #[prost(message, tag = "154")]
1848 GapFill(::prost::alloc::boxed::Box<super::GapFillNode>),
1849 #[prost(message, tag = "155")]
1850 VectorIndexLookupJoin(
1851 ::prost::alloc::boxed::Box<super::VectorIndexLookupJoinNode>,
1852 ),
1853 #[prost(message, tag = "156")]
1854 IcebergWithPkIndexWriter(
1855 ::prost::alloc::boxed::Box<super::IcebergWithPkIndexWriterNode>,
1856 ),
1857 #[prost(message, tag = "157")]
1858 IcebergWithPkIndexDvMerger(
1859 ::prost::alloc::boxed::Box<super::IcebergWithPkIndexDvMergerNode>,
1860 ),
1861 }
1862}
1863#[derive(prost_helpers::AnyPB)]
1877#[derive(Clone, PartialEq, ::prost::Message)]
1878pub struct DispatchOutputMapping {
1879 #[prost(uint32, repeated, tag = "1")]
1881 pub indices: ::prost::alloc::vec::Vec<u32>,
1882 #[prost(message, repeated, tag = "2")]
1888 pub types: ::prost::alloc::vec::Vec<dispatch_output_mapping::TypePair>,
1889}
1890pub mod dispatch_output_mapping {
1892 #[derive(prost_helpers::AnyPB)]
1893 #[derive(Clone, PartialEq, ::prost::Message)]
1894 pub struct TypePair {
1895 #[prost(message, optional, tag = "1")]
1896 pub upstream: ::core::option::Option<super::super::data::DataType>,
1897 #[prost(message, optional, tag = "2")]
1898 pub downstream: ::core::option::Option<super::super::data::DataType>,
1899 }
1900}
1901#[derive(prost_helpers::AnyPB)]
1904#[derive(Clone, PartialEq, ::prost::Message)]
1905pub struct DispatchStrategy {
1906 #[prost(enumeration = "DispatcherType", tag = "1")]
1907 pub r#type: i32,
1908 #[prost(uint32, repeated, tag = "2")]
1909 pub dist_key_indices: ::prost::alloc::vec::Vec<u32>,
1910 #[prost(message, optional, tag = "3")]
1911 pub output_mapping: ::core::option::Option<DispatchOutputMapping>,
1912}
1913#[derive(prost_helpers::AnyPB)]
1916#[derive(Clone, PartialEq, ::prost::Message)]
1917pub struct Dispatcher {
1918 #[prost(enumeration = "DispatcherType", tag = "1")]
1919 pub r#type: i32,
1920 #[prost(uint32, repeated, tag = "2")]
1923 pub dist_key_indices: ::prost::alloc::vec::Vec<u32>,
1924 #[prost(message, optional, tag = "6")]
1926 pub output_mapping: ::core::option::Option<DispatchOutputMapping>,
1927 #[prost(message, optional, tag = "3")]
1930 pub hash_mapping: ::core::option::Option<ActorMapping>,
1931 #[prost(uint32, tag = "4", wrapper = "crate::id::FragmentId")]
1934 pub dispatcher_id: crate::id::FragmentId,
1935 #[prost(uint32, repeated, tag = "5", wrapper = "crate::id::ActorId")]
1937 pub downstream_actor_id: ::prost::alloc::vec::Vec<crate::id::ActorId>,
1938}
1939#[derive(prost_helpers::AnyPB)]
1941#[derive(Clone, PartialEq, ::prost::Message)]
1942pub struct StreamActor {
1943 #[prost(uint32, tag = "1", wrapper = "crate::id::ActorId")]
1944 pub actor_id: crate::id::ActorId,
1945 #[prost(uint32, tag = "2", wrapper = "crate::id::FragmentId")]
1946 pub fragment_id: crate::id::FragmentId,
1947 #[prost(message, repeated, tag = "4")]
1948 pub dispatcher: ::prost::alloc::vec::Vec<Dispatcher>,
1949 #[prost(message, optional, tag = "8")]
1952 pub vnode_bitmap: ::core::option::Option<super::common::Buffer>,
1953 #[prost(string, tag = "9")]
1955 pub mview_definition: ::prost::alloc::string::String,
1956 #[prost(message, optional, tag = "10")]
1958 pub expr_context: ::core::option::Option<super::plan_common::ExprContext>,
1959 #[prost(string, tag = "11")]
1961 pub config_override: ::prost::alloc::string::String,
1962}
1963#[derive(prost_helpers::AnyPB)]
1965#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1966pub struct StreamContext {
1967 #[prost(string, tag = "1")]
1969 pub timezone: ::prost::alloc::string::String,
1970 #[prost(string, tag = "2")]
1972 pub config_override: ::prost::alloc::string::String,
1973 #[prost(string, tag = "3")]
1975 pub adaptive_parallelism_strategy: ::prost::alloc::string::String,
1976 #[prost(string, tag = "4")]
1978 pub backfill_adaptive_parallelism_strategy: ::prost::alloc::string::String,
1979}
1980#[derive(prost_helpers::AnyPB)]
1981#[derive(Clone, PartialEq, ::prost::Message)]
1982pub struct BackfillOrder {
1983 #[prost(map = "uint32, message", tag = "1", wrapper = "crate::id::RelationId")]
1984 pub order: ::std::collections::HashMap<
1985 crate::id::RelationId,
1986 super::common::Uint32Vector,
1987 >,
1988}
1989#[derive(prost_helpers::AnyPB)]
1994#[derive(Clone, PartialEq, ::prost::Message)]
1995pub struct StreamFragmentGraph {
1996 #[prost(map = "uint32, message", tag = "1", wrapper = "crate::id::FragmentId")]
1998 pub fragments: ::std::collections::HashMap<
1999 crate::id::FragmentId,
2000 stream_fragment_graph::StreamFragment,
2001 >,
2002 #[prost(message, repeated, tag = "2")]
2004 pub edges: ::prost::alloc::vec::Vec<stream_fragment_graph::StreamFragmentEdge>,
2005 #[prost(uint32, repeated, tag = "3", wrapper = "crate::id::TableId")]
2006 pub dependent_table_ids: ::prost::alloc::vec::Vec<crate::id::TableId>,
2007 #[prost(uint32, tag = "4")]
2008 pub table_ids_cnt: u32,
2009 #[prost(message, optional, tag = "5")]
2010 pub ctx: ::core::option::Option<StreamContext>,
2011 #[prost(message, optional, tag = "6")]
2013 pub parallelism: ::core::option::Option<stream_fragment_graph::Parallelism>,
2014 #[prost(message, optional, tag = "9")]
2016 pub backfill_parallelism: ::core::option::Option<stream_fragment_graph::Parallelism>,
2017 #[prost(uint32, tag = "7")]
2027 pub max_parallelism: u32,
2028 #[prost(message, optional, tag = "8")]
2030 pub backfill_order: ::core::option::Option<BackfillOrder>,
2031}
2032pub mod stream_fragment_graph {
2034 #[derive(prost_helpers::AnyPB)]
2035 #[derive(Clone, PartialEq, ::prost::Message)]
2036 pub struct StreamFragment {
2037 #[prost(uint32, tag = "1", wrapper = "crate::id::FragmentId")]
2039 pub fragment_id: crate::id::FragmentId,
2040 #[prost(message, optional, tag = "2")]
2042 pub node: ::core::option::Option<super::StreamNode>,
2043 #[prost(uint32, tag = "3")]
2045 pub fragment_type_mask: u32,
2046 #[prost(bool, tag = "4")]
2050 pub requires_singleton: bool,
2051 }
2052 #[derive(prost_helpers::AnyPB)]
2053 #[derive(Clone, PartialEq, ::prost::Message)]
2054 pub struct StreamFragmentEdge {
2055 #[prost(message, optional, tag = "1")]
2057 pub dispatch_strategy: ::core::option::Option<super::DispatchStrategy>,
2058 #[prost(uint64, tag = "3")]
2062 pub link_id: u64,
2063 #[prost(uint32, tag = "4", wrapper = "crate::id::FragmentId")]
2064 pub upstream_id: crate::id::FragmentId,
2065 #[prost(uint32, tag = "5", wrapper = "crate::id::FragmentId")]
2066 pub downstream_id: crate::id::FragmentId,
2067 }
2068 #[derive(prost_helpers::AnyPB)]
2069 #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2070 pub struct Parallelism {
2071 #[prost(uint64, tag = "1")]
2072 pub parallelism: u64,
2073 }
2074}
2075#[derive(prost_helpers::AnyPB)]
2077#[derive(Clone, PartialEq, ::prost::Message)]
2078pub struct SinkSchemaChange {
2079 #[prost(message, repeated, tag = "1")]
2082 pub original_schema: ::prost::alloc::vec::Vec<super::plan_common::Field>,
2083 #[prost(oneof = "sink_schema_change::Op", tags = "2, 3")]
2085 pub op: ::core::option::Option<sink_schema_change::Op>,
2086}
2087pub mod sink_schema_change {
2089 #[derive(prost_helpers::AnyPB)]
2091 #[derive(Clone, PartialEq, ::prost::Oneof)]
2092 pub enum Op {
2093 #[prost(message, tag = "2")]
2095 AddColumns(super::SinkAddColumnsOp),
2096 #[prost(message, tag = "3")]
2098 DropColumns(super::SinkDropColumnsOp),
2099 }
2100}
2101#[derive(prost_helpers::AnyPB)]
2103#[derive(Clone, PartialEq, ::prost::Message)]
2104pub struct SinkAddColumnsOp {
2105 #[prost(message, repeated, tag = "1")]
2107 pub fields: ::prost::alloc::vec::Vec<super::plan_common::Field>,
2108}
2109#[derive(prost_helpers::AnyPB)]
2111#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2112pub struct SinkDropColumnsOp {
2113 #[prost(string, repeated, tag = "1")]
2115 pub column_names: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2116}
2117#[derive(prost_helpers::AnyPB)]
2118#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2119#[repr(i32)]
2120pub enum SinkLogStoreType {
2121 Unspecified = 0,
2123 KvLogStore = 1,
2124 InMemoryLogStore = 2,
2125}
2126impl SinkLogStoreType {
2127 pub fn as_str_name(&self) -> &'static str {
2132 match self {
2133 Self::Unspecified => "SINK_LOG_STORE_TYPE_UNSPECIFIED",
2134 Self::KvLogStore => "SINK_LOG_STORE_TYPE_KV_LOG_STORE",
2135 Self::InMemoryLogStore => "SINK_LOG_STORE_TYPE_IN_MEMORY_LOG_STORE",
2136 }
2137 }
2138 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2140 match value {
2141 "SINK_LOG_STORE_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
2142 "SINK_LOG_STORE_TYPE_KV_LOG_STORE" => Some(Self::KvLogStore),
2143 "SINK_LOG_STORE_TYPE_IN_MEMORY_LOG_STORE" => Some(Self::InMemoryLogStore),
2144 _ => None,
2145 }
2146 }
2147}
2148#[derive(prost_helpers::AnyPB)]
2149#[derive(prost_helpers::Version)]
2150#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2151#[repr(i32)]
2152pub enum AggNodeVersion {
2153 Unspecified = 0,
2154 Issue12140 = 1,
2156 Issue13465 = 2,
2158}
2159impl AggNodeVersion {
2160 pub fn as_str_name(&self) -> &'static str {
2165 match self {
2166 Self::Unspecified => "AGG_NODE_VERSION_UNSPECIFIED",
2167 Self::Issue12140 => "AGG_NODE_VERSION_ISSUE_12140",
2168 Self::Issue13465 => "AGG_NODE_VERSION_ISSUE_13465",
2169 }
2170 }
2171 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2173 match value {
2174 "AGG_NODE_VERSION_UNSPECIFIED" => Some(Self::Unspecified),
2175 "AGG_NODE_VERSION_ISSUE_12140" => Some(Self::Issue12140),
2176 "AGG_NODE_VERSION_ISSUE_13465" => Some(Self::Issue13465),
2177 _ => None,
2178 }
2179 }
2180}
2181#[derive(prost_helpers::AnyPB)]
2182#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2183#[repr(i32)]
2184pub enum InequalityType {
2185 Unspecified = 0,
2186 LessThan = 1,
2187 LessThanOrEqual = 2,
2188 GreaterThan = 3,
2189 GreaterThanOrEqual = 4,
2190}
2191impl InequalityType {
2192 pub fn as_str_name(&self) -> &'static str {
2197 match self {
2198 Self::Unspecified => "INEQUALITY_TYPE_UNSPECIFIED",
2199 Self::LessThan => "INEQUALITY_TYPE_LESS_THAN",
2200 Self::LessThanOrEqual => "INEQUALITY_TYPE_LESS_THAN_OR_EQUAL",
2201 Self::GreaterThan => "INEQUALITY_TYPE_GREATER_THAN",
2202 Self::GreaterThanOrEqual => "INEQUALITY_TYPE_GREATER_THAN_OR_EQUAL",
2203 }
2204 }
2205 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2207 match value {
2208 "INEQUALITY_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
2209 "INEQUALITY_TYPE_LESS_THAN" => Some(Self::LessThan),
2210 "INEQUALITY_TYPE_LESS_THAN_OR_EQUAL" => Some(Self::LessThanOrEqual),
2211 "INEQUALITY_TYPE_GREATER_THAN" => Some(Self::GreaterThan),
2212 "INEQUALITY_TYPE_GREATER_THAN_OR_EQUAL" => Some(Self::GreaterThanOrEqual),
2213 _ => None,
2214 }
2215 }
2216}
2217#[derive(prost_helpers::AnyPB)]
2218#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2219#[repr(i32)]
2220pub enum JoinEncodingType {
2221 Unspecified = 0,
2222 MemoryOptimized = 1,
2223 CpuOptimized = 2,
2224}
2225impl JoinEncodingType {
2226 pub fn as_str_name(&self) -> &'static str {
2231 match self {
2232 Self::Unspecified => "UNSPECIFIED",
2233 Self::MemoryOptimized => "MEMORY_OPTIMIZED",
2234 Self::CpuOptimized => "CPU_OPTIMIZED",
2235 }
2236 }
2237 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2239 match value {
2240 "UNSPECIFIED" => Some(Self::Unspecified),
2241 "MEMORY_OPTIMIZED" => Some(Self::MemoryOptimized),
2242 "CPU_OPTIMIZED" => Some(Self::CpuOptimized),
2243 _ => None,
2244 }
2245 }
2246}
2247#[derive(prost_helpers::AnyPB)]
2249#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2250#[repr(i32)]
2251pub enum StreamScanType {
2252 Unspecified = 0,
2253 Chain = 1,
2255 Rearrange = 2,
2257 Backfill = 3,
2259 UpstreamOnly = 4,
2261 ArrangementBackfill = 5,
2263 SnapshotBackfill = 6,
2265 CrossDbSnapshotBackfill = 7,
2267}
2268impl StreamScanType {
2269 pub fn as_str_name(&self) -> &'static str {
2274 match self {
2275 Self::Unspecified => "STREAM_SCAN_TYPE_UNSPECIFIED",
2276 Self::Chain => "STREAM_SCAN_TYPE_CHAIN",
2277 Self::Rearrange => "STREAM_SCAN_TYPE_REARRANGE",
2278 Self::Backfill => "STREAM_SCAN_TYPE_BACKFILL",
2279 Self::UpstreamOnly => "STREAM_SCAN_TYPE_UPSTREAM_ONLY",
2280 Self::ArrangementBackfill => "STREAM_SCAN_TYPE_ARRANGEMENT_BACKFILL",
2281 Self::SnapshotBackfill => "STREAM_SCAN_TYPE_SNAPSHOT_BACKFILL",
2282 Self::CrossDbSnapshotBackfill => {
2283 "STREAM_SCAN_TYPE_CROSS_DB_SNAPSHOT_BACKFILL"
2284 }
2285 }
2286 }
2287 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2289 match value {
2290 "STREAM_SCAN_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
2291 "STREAM_SCAN_TYPE_CHAIN" => Some(Self::Chain),
2292 "STREAM_SCAN_TYPE_REARRANGE" => Some(Self::Rearrange),
2293 "STREAM_SCAN_TYPE_BACKFILL" => Some(Self::Backfill),
2294 "STREAM_SCAN_TYPE_UPSTREAM_ONLY" => Some(Self::UpstreamOnly),
2295 "STREAM_SCAN_TYPE_ARRANGEMENT_BACKFILL" => Some(Self::ArrangementBackfill),
2296 "STREAM_SCAN_TYPE_SNAPSHOT_BACKFILL" => Some(Self::SnapshotBackfill),
2297 "STREAM_SCAN_TYPE_CROSS_DB_SNAPSHOT_BACKFILL" => {
2298 Some(Self::CrossDbSnapshotBackfill)
2299 }
2300 _ => None,
2301 }
2302 }
2303}
2304#[derive(prost_helpers::AnyPB)]
2305#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2306#[repr(i32)]
2307pub enum OverWindowCachePolicy {
2308 Unspecified = 0,
2309 Full = 1,
2310 Recent = 2,
2311 RecentFirstN = 3,
2312 RecentLastN = 4,
2313}
2314impl OverWindowCachePolicy {
2315 pub fn as_str_name(&self) -> &'static str {
2320 match self {
2321 Self::Unspecified => "OVER_WINDOW_CACHE_POLICY_UNSPECIFIED",
2322 Self::Full => "OVER_WINDOW_CACHE_POLICY_FULL",
2323 Self::Recent => "OVER_WINDOW_CACHE_POLICY_RECENT",
2324 Self::RecentFirstN => "OVER_WINDOW_CACHE_POLICY_RECENT_FIRST_N",
2325 Self::RecentLastN => "OVER_WINDOW_CACHE_POLICY_RECENT_LAST_N",
2326 }
2327 }
2328 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2330 match value {
2331 "OVER_WINDOW_CACHE_POLICY_UNSPECIFIED" => Some(Self::Unspecified),
2332 "OVER_WINDOW_CACHE_POLICY_FULL" => Some(Self::Full),
2333 "OVER_WINDOW_CACHE_POLICY_RECENT" => Some(Self::Recent),
2334 "OVER_WINDOW_CACHE_POLICY_RECENT_FIRST_N" => Some(Self::RecentFirstN),
2335 "OVER_WINDOW_CACHE_POLICY_RECENT_LAST_N" => Some(Self::RecentLastN),
2336 _ => None,
2337 }
2338 }
2339}
2340#[derive(prost_helpers::AnyPB)]
2341#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2342#[repr(i32)]
2343pub enum DispatcherType {
2344 Unspecified = 0,
2345 Hash = 1,
2347 Broadcast = 2,
2352 Simple = 3,
2354 NoShuffle = 4,
2358}
2359impl DispatcherType {
2360 pub fn as_str_name(&self) -> &'static str {
2365 match self {
2366 Self::Unspecified => "DISPATCHER_TYPE_UNSPECIFIED",
2367 Self::Hash => "DISPATCHER_TYPE_HASH",
2368 Self::Broadcast => "DISPATCHER_TYPE_BROADCAST",
2369 Self::Simple => "DISPATCHER_TYPE_SIMPLE",
2370 Self::NoShuffle => "DISPATCHER_TYPE_NO_SHUFFLE",
2371 }
2372 }
2373 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2375 match value {
2376 "DISPATCHER_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
2377 "DISPATCHER_TYPE_HASH" => Some(Self::Hash),
2378 "DISPATCHER_TYPE_BROADCAST" => Some(Self::Broadcast),
2379 "DISPATCHER_TYPE_SIMPLE" => Some(Self::Simple),
2380 "DISPATCHER_TYPE_NO_SHUFFLE" => Some(Self::NoShuffle),
2381 _ => None,
2382 }
2383 }
2384}