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")]
12 pub upstream_fragment_id: u32,
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")]
23 pub actor_dispatchers: ::std::collections::HashMap<u32, Dispatchers>,
24 #[prost(uint32, repeated, tag = "3")]
26 pub added_actors: ::prost::alloc::vec::Vec<u32>,
27 #[prost(map = "uint32, message", tag = "2")]
31 pub actor_splits: ::std::collections::HashMap<u32, super::source::ConnectorSplits>,
32 #[prost(bool, tag = "4")]
35 pub pause: bool,
36 #[prost(message, repeated, tag = "5")]
37 pub subscriptions_to_add: ::prost::alloc::vec::Vec<SubscriptionUpstreamInfo>,
38 #[prost(uint32, repeated, tag = "6")]
40 pub backfill_nodes_to_pause: ::prost::alloc::vec::Vec<u32>,
41 #[prost(message, optional, tag = "7")]
43 pub actor_cdc_table_snapshot_splits: ::core::option::Option<
44 super::source::CdcTableSnapshotSplitsWithGeneration,
45 >,
46 #[prost(map = "uint32, message", tag = "8")]
48 pub new_upstream_sinks: ::std::collections::HashMap<
49 u32,
50 add_mutation::NewUpstreamSink,
51 >,
52}
53pub mod add_mutation {
55 #[derive(prost_helpers::AnyPB)]
56 #[derive(Clone, PartialEq, ::prost::Message)]
57 pub struct NewUpstreamSink {
58 #[prost(message, optional, tag = "1")]
59 pub info: ::core::option::Option<super::UpstreamSinkInfo>,
60 #[prost(message, repeated, tag = "2")]
61 pub upstream_actors: ::prost::alloc::vec::Vec<super::super::common::ActorInfo>,
62 }
63}
64#[derive(prost_helpers::AnyPB)]
65#[derive(Clone, PartialEq, ::prost::Message)]
66pub struct StopMutation {
67 #[prost(uint32, repeated, tag = "1")]
68 pub actors: ::prost::alloc::vec::Vec<u32>,
69 #[prost(uint32, repeated, tag = "2")]
71 pub dropped_sink_fragments: ::prost::alloc::vec::Vec<u32>,
72}
73#[derive(prost_helpers::AnyPB)]
74#[derive(Clone, PartialEq, ::prost::Message)]
75pub struct SinkAddColumns {
76 #[prost(message, repeated, tag = "1")]
77 pub fields: ::prost::alloc::vec::Vec<super::plan_common::Field>,
78}
79#[derive(prost_helpers::AnyPB)]
80#[derive(Clone, PartialEq, ::prost::Message)]
81pub struct UpdateMutation {
82 #[prost(message, repeated, tag = "1")]
84 pub dispatcher_update: ::prost::alloc::vec::Vec<update_mutation::DispatcherUpdate>,
85 #[prost(message, repeated, tag = "2")]
87 pub merge_update: ::prost::alloc::vec::Vec<update_mutation::MergeUpdate>,
88 #[prost(map = "uint32, message", tag = "3")]
90 pub actor_vnode_bitmap_update: ::std::collections::HashMap<
91 u32,
92 super::common::Buffer,
93 >,
94 #[prost(uint32, repeated, tag = "4")]
96 pub dropped_actors: ::prost::alloc::vec::Vec<u32>,
97 #[prost(map = "uint32, message", tag = "5")]
100 pub actor_splits: ::std::collections::HashMap<u32, super::source::ConnectorSplits>,
101 #[prost(map = "uint32, message", tag = "6")]
104 pub actor_new_dispatchers: ::std::collections::HashMap<u32, Dispatchers>,
105 #[prost(message, optional, tag = "7")]
107 pub actor_cdc_table_snapshot_splits: ::core::option::Option<
108 super::source::CdcTableSnapshotSplitsWithGeneration,
109 >,
110 #[prost(map = "uint32, message", tag = "8")]
111 pub sink_add_columns: ::std::collections::HashMap<u32, SinkAddColumns>,
112}
113pub mod update_mutation {
115 #[derive(prost_helpers::AnyPB)]
116 #[derive(Clone, PartialEq, ::prost::Message)]
117 pub struct DispatcherUpdate {
118 #[prost(uint32, tag = "1")]
120 pub actor_id: u32,
121 #[prost(uint64, tag = "2")]
122 pub dispatcher_id: u64,
123 #[prost(message, optional, tag = "3")]
126 pub hash_mapping: ::core::option::Option<super::ActorMapping>,
127 #[prost(uint32, repeated, tag = "4")]
129 pub added_downstream_actor_id: ::prost::alloc::vec::Vec<u32>,
130 #[prost(uint32, repeated, tag = "5")]
132 pub removed_downstream_actor_id: ::prost::alloc::vec::Vec<u32>,
133 }
134 #[derive(prost_helpers::AnyPB)]
135 #[derive(Clone, PartialEq, ::prost::Message)]
136 pub struct MergeUpdate {
137 #[prost(uint32, tag = "1")]
139 pub actor_id: u32,
140 #[prost(uint32, tag = "2")]
141 pub upstream_fragment_id: u32,
142 #[prost(uint32, optional, tag = "5")]
146 pub new_upstream_fragment_id: ::core::option::Option<u32>,
147 #[prost(message, repeated, tag = "3")]
149 pub added_upstream_actors: ::prost::alloc::vec::Vec<
150 super::super::common::ActorInfo,
151 >,
152 #[prost(uint32, repeated, tag = "4")]
155 pub removed_upstream_actor_id: ::prost::alloc::vec::Vec<u32>,
156 }
157}
158#[derive(prost_helpers::AnyPB)]
159#[derive(Clone, PartialEq, ::prost::Message)]
160pub struct SourceChangeSplitMutation {
161 #[prost(map = "uint32, message", tag = "2")]
163 pub actor_splits: ::std::collections::HashMap<u32, super::source::ConnectorSplits>,
164}
165#[derive(prost_helpers::AnyPB)]
166#[derive(Clone, Copy, PartialEq, ::prost::Message)]
167pub struct PauseMutation {}
168#[derive(prost_helpers::AnyPB)]
169#[derive(Clone, Copy, PartialEq, ::prost::Message)]
170pub struct ResumeMutation {}
171#[derive(prost_helpers::AnyPB)]
172#[derive(Clone, PartialEq, ::prost::Message)]
173pub struct ThrottleMutation {
174 #[prost(map = "uint32, message", tag = "1")]
175 pub actor_throttle: ::std::collections::HashMap<u32, throttle_mutation::RateLimit>,
176}
177pub mod throttle_mutation {
179 #[derive(prost_helpers::AnyPB)]
180 #[derive(Clone, Copy, PartialEq, ::prost::Message)]
181 pub struct RateLimit {
182 #[prost(uint32, optional, tag = "1")]
183 pub rate_limit: ::core::option::Option<u32>,
184 }
185}
186#[derive(prost_helpers::AnyPB)]
187#[derive(Clone, PartialEq, ::prost::Message)]
188pub struct CombinedMutation {
189 #[prost(message, repeated, tag = "1")]
190 pub mutations: ::prost::alloc::vec::Vec<BarrierMutation>,
191}
192#[derive(prost_helpers::AnyPB)]
193#[derive(Clone, Copy, PartialEq, ::prost::Message)]
194pub struct SubscriptionUpstreamInfo {
195 #[prost(uint32, tag = "1")]
197 pub subscriber_id: u32,
198 #[prost(uint32, tag = "2")]
199 pub upstream_mv_table_id: u32,
200}
201#[derive(prost_helpers::AnyPB)]
202#[derive(Clone, PartialEq, ::prost::Message)]
203pub struct DropSubscriptionsMutation {
204 #[prost(message, repeated, tag = "1")]
205 pub info: ::prost::alloc::vec::Vec<SubscriptionUpstreamInfo>,
206}
207#[derive(prost_helpers::AnyPB)]
208#[derive(Clone, PartialEq, ::prost::Message)]
209pub struct ConnectorPropsChangeMutation {
210 #[prost(map = "uint32, message", tag = "1")]
211 pub connector_props_infos: ::std::collections::HashMap<
212 u32,
213 connector_props_change_mutation::ConnectorPropsInfo,
214 >,
215}
216pub mod connector_props_change_mutation {
218 #[derive(prost_helpers::AnyPB)]
219 #[derive(Clone, PartialEq, ::prost::Message)]
220 pub struct ConnectorPropsInfo {
221 #[prost(map = "string, string", tag = "1")]
222 pub connector_props_info: ::std::collections::HashMap<
223 ::prost::alloc::string::String,
224 ::prost::alloc::string::String,
225 >,
226 }
227}
228#[derive(prost_helpers::AnyPB)]
229#[derive(Clone, PartialEq, ::prost::Message)]
230pub struct StartFragmentBackfillMutation {
231 #[prost(uint32, repeated, tag = "1")]
232 pub fragment_ids: ::prost::alloc::vec::Vec<u32>,
233}
234#[derive(prost_helpers::AnyPB)]
235#[derive(Clone, Copy, PartialEq, ::prost::Message)]
236pub struct RefreshStartMutation {
237 #[prost(uint32, tag = "1")]
239 pub table_id: u32,
240 #[prost(uint32, tag = "2")]
242 pub associated_source_id: u32,
243}
244#[derive(prost_helpers::AnyPB)]
245#[derive(Clone, Copy, PartialEq, ::prost::Message)]
246pub struct LoadFinishMutation {
247 #[prost(uint32, tag = "1")]
249 pub associated_source_id: u32,
250}
251#[derive(prost_helpers::AnyPB)]
252#[derive(Clone, PartialEq, ::prost::Message)]
253pub struct BarrierMutation {
254 #[prost(
255 oneof = "barrier_mutation::Mutation",
256 tags = "3, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16, 100"
257 )]
258 pub mutation: ::core::option::Option<barrier_mutation::Mutation>,
259}
260pub mod barrier_mutation {
262 #[derive(prost_helpers::AnyPB)]
263 #[derive(Clone, PartialEq, ::prost::Oneof)]
264 pub enum Mutation {
265 #[prost(message, tag = "3")]
267 Add(super::AddMutation),
268 #[prost(message, tag = "4")]
271 Stop(super::StopMutation),
272 #[prost(message, tag = "5")]
274 Update(super::UpdateMutation),
275 #[prost(message, tag = "6")]
277 Splits(super::SourceChangeSplitMutation),
278 #[prost(message, tag = "7")]
280 Pause(super::PauseMutation),
281 #[prost(message, tag = "8")]
283 Resume(super::ResumeMutation),
284 #[prost(message, tag = "10")]
286 Throttle(super::ThrottleMutation),
287 #[prost(message, tag = "12")]
289 DropSubscriptions(super::DropSubscriptionsMutation),
290 #[prost(message, tag = "13")]
292 ConnectorPropsChange(super::ConnectorPropsChangeMutation),
293 #[prost(message, tag = "14")]
299 StartFragmentBackfill(super::StartFragmentBackfillMutation),
300 #[prost(message, tag = "15")]
302 RefreshStart(super::RefreshStartMutation),
303 #[prost(message, tag = "16")]
305 LoadFinish(super::LoadFinishMutation),
306 #[prost(message, tag = "100")]
309 Combined(super::CombinedMutation),
310 }
311}
312#[derive(prost_helpers::AnyPB)]
313#[derive(Clone, PartialEq, ::prost::Message)]
314pub struct Barrier {
315 #[prost(message, optional, tag = "1")]
316 pub epoch: ::core::option::Option<super::data::Epoch>,
317 #[prost(message, optional, tag = "3")]
318 pub mutation: ::core::option::Option<BarrierMutation>,
319 #[prost(map = "string, string", tag = "2")]
321 pub tracing_context: ::std::collections::HashMap<
322 ::prost::alloc::string::String,
323 ::prost::alloc::string::String,
324 >,
325 #[prost(enumeration = "barrier::BarrierKind", tag = "9")]
327 pub kind: i32,
328 #[prost(uint32, repeated, tag = "255")]
330 pub passed_actors: ::prost::alloc::vec::Vec<u32>,
331}
332pub mod barrier {
334 #[derive(prost_helpers::AnyPB)]
335 #[derive(::enum_as_inner::EnumAsInner)]
336 #[derive(
337 Clone,
338 Copy,
339 Debug,
340 PartialEq,
341 Eq,
342 Hash,
343 PartialOrd,
344 Ord,
345 ::prost::Enumeration
346 )]
347 #[repr(i32)]
348 pub enum BarrierKind {
349 Unspecified = 0,
350 Initial = 1,
353 Barrier = 2,
355 Checkpoint = 3,
357 }
358 impl BarrierKind {
359 pub fn as_str_name(&self) -> &'static str {
364 match self {
365 Self::Unspecified => "BARRIER_KIND_UNSPECIFIED",
366 Self::Initial => "BARRIER_KIND_INITIAL",
367 Self::Barrier => "BARRIER_KIND_BARRIER",
368 Self::Checkpoint => "BARRIER_KIND_CHECKPOINT",
369 }
370 }
371 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
373 match value {
374 "BARRIER_KIND_UNSPECIFIED" => Some(Self::Unspecified),
375 "BARRIER_KIND_INITIAL" => Some(Self::Initial),
376 "BARRIER_KIND_BARRIER" => Some(Self::Barrier),
377 "BARRIER_KIND_CHECKPOINT" => Some(Self::Checkpoint),
378 _ => None,
379 }
380 }
381 }
382}
383#[derive(prost_helpers::AnyPB)]
384#[derive(Clone, PartialEq, ::prost::Message)]
385pub struct Watermark {
386 #[prost(message, optional, tag = "1")]
388 pub column: ::core::option::Option<super::expr::InputRef>,
389 #[prost(message, optional, tag = "3")]
391 pub val: ::core::option::Option<super::data::Datum>,
392}
393#[derive(prost_helpers::AnyPB)]
394#[derive(Clone, PartialEq, ::prost::Message)]
395pub struct StreamMessage {
396 #[prost(oneof = "stream_message::StreamMessage", tags = "1, 2, 3")]
397 pub stream_message: ::core::option::Option<stream_message::StreamMessage>,
398}
399pub mod stream_message {
401 #[derive(prost_helpers::AnyPB)]
402 #[derive(Clone, PartialEq, ::prost::Oneof)]
403 pub enum StreamMessage {
404 #[prost(message, tag = "1")]
405 StreamChunk(super::super::data::StreamChunk),
406 #[prost(message, tag = "2")]
407 Barrier(super::Barrier),
408 #[prost(message, tag = "3")]
409 Watermark(super::Watermark),
410 }
411}
412#[derive(prost_helpers::AnyPB)]
413#[derive(Clone, PartialEq, ::prost::Message)]
414pub struct StreamMessageBatch {
415 #[prost(oneof = "stream_message_batch::StreamMessageBatch", tags = "1, 2, 3")]
416 pub stream_message_batch: ::core::option::Option<
417 stream_message_batch::StreamMessageBatch,
418 >,
419}
420pub mod stream_message_batch {
422 #[derive(prost_helpers::AnyPB)]
423 #[derive(Clone, PartialEq, ::prost::Message)]
424 pub struct BarrierBatch {
425 #[prost(message, repeated, tag = "1")]
426 pub barriers: ::prost::alloc::vec::Vec<super::Barrier>,
427 }
428 #[derive(prost_helpers::AnyPB)]
429 #[derive(Clone, PartialEq, ::prost::Oneof)]
430 pub enum StreamMessageBatch {
431 #[prost(message, tag = "1")]
432 StreamChunk(super::super::data::StreamChunk),
433 #[prost(message, tag = "2")]
434 BarrierBatch(BarrierBatch),
435 #[prost(message, tag = "3")]
436 Watermark(super::Watermark),
437 }
438}
439#[derive(prost_helpers::AnyPB)]
441#[derive(Clone, PartialEq, ::prost::Message)]
442pub struct ActorMapping {
443 #[prost(uint32, repeated, tag = "1")]
444 pub original_indices: ::prost::alloc::vec::Vec<u32>,
445 #[prost(uint32, repeated, tag = "2")]
446 pub data: ::prost::alloc::vec::Vec<u32>,
447}
448#[derive(prost_helpers::AnyPB)]
449#[derive(Clone, PartialEq, ::prost::Message)]
450pub struct StreamSource {
451 #[prost(uint32, tag = "1")]
452 pub source_id: u32,
453 #[prost(message, optional, tag = "2")]
454 pub state_table: ::core::option::Option<super::catalog::Table>,
455 #[prost(uint32, optional, tag = "3")]
456 pub row_id_index: ::core::option::Option<u32>,
457 #[prost(message, repeated, tag = "4")]
458 pub columns: ::prost::alloc::vec::Vec<super::plan_common::ColumnCatalog>,
459 #[prost(btree_map = "string, string", tag = "6")]
460 pub with_properties: ::prost::alloc::collections::BTreeMap<
461 ::prost::alloc::string::String,
462 ::prost::alloc::string::String,
463 >,
464 #[prost(message, optional, tag = "7")]
465 pub info: ::core::option::Option<super::catalog::StreamSourceInfo>,
466 #[prost(string, tag = "8")]
467 pub source_name: ::prost::alloc::string::String,
468 #[prost(uint32, optional, tag = "9")]
470 pub rate_limit: ::core::option::Option<u32>,
471 #[prost(btree_map = "string, message", tag = "10")]
472 pub secret_refs: ::prost::alloc::collections::BTreeMap<
473 ::prost::alloc::string::String,
474 super::secret::SecretRef,
475 >,
476}
477#[derive(prost_helpers::AnyPB)]
479#[derive(Clone, PartialEq, ::prost::Message)]
480pub struct StreamFsFetch {
481 #[prost(uint32, tag = "1")]
482 pub source_id: u32,
483 #[prost(message, optional, tag = "2")]
484 pub state_table: ::core::option::Option<super::catalog::Table>,
485 #[prost(uint32, optional, tag = "3")]
486 pub row_id_index: ::core::option::Option<u32>,
487 #[prost(message, repeated, tag = "4")]
488 pub columns: ::prost::alloc::vec::Vec<super::plan_common::ColumnCatalog>,
489 #[prost(btree_map = "string, string", tag = "6")]
490 pub with_properties: ::prost::alloc::collections::BTreeMap<
491 ::prost::alloc::string::String,
492 ::prost::alloc::string::String,
493 >,
494 #[prost(message, optional, tag = "7")]
495 pub info: ::core::option::Option<super::catalog::StreamSourceInfo>,
496 #[prost(string, tag = "8")]
497 pub source_name: ::prost::alloc::string::String,
498 #[prost(uint32, optional, tag = "9")]
500 pub rate_limit: ::core::option::Option<u32>,
501 #[prost(btree_map = "string, message", tag = "10")]
502 pub secret_refs: ::prost::alloc::collections::BTreeMap<
503 ::prost::alloc::string::String,
504 super::secret::SecretRef,
505 >,
506}
507#[derive(prost_helpers::AnyPB)]
510#[derive(Clone, Copy, PartialEq, ::prost::Message)]
511pub struct BarrierRecvNode {}
512#[derive(prost_helpers::AnyPB)]
513#[derive(Clone, PartialEq, ::prost::Message)]
514pub struct SourceNode {
515 #[prost(message, optional, tag = "1")]
518 pub source_inner: ::core::option::Option<StreamSource>,
519}
520#[derive(prost_helpers::AnyPB)]
521#[derive(Clone, PartialEq, ::prost::Message)]
522pub struct StreamFsFetchNode {
523 #[prost(message, optional, tag = "1")]
524 pub node_inner: ::core::option::Option<StreamFsFetch>,
525}
526#[derive(prost_helpers::AnyPB)]
529#[derive(Clone, PartialEq, ::prost::Message)]
530pub struct SourceBackfillNode {
531 #[prost(uint32, tag = "1")]
532 pub upstream_source_id: u32,
533 #[prost(uint32, optional, tag = "2")]
534 pub row_id_index: ::core::option::Option<u32>,
535 #[prost(message, repeated, tag = "3")]
536 pub columns: ::prost::alloc::vec::Vec<super::plan_common::ColumnCatalog>,
537 #[prost(message, optional, tag = "4")]
538 pub info: ::core::option::Option<super::catalog::StreamSourceInfo>,
539 #[prost(string, tag = "5")]
540 pub source_name: ::prost::alloc::string::String,
541 #[prost(btree_map = "string, string", tag = "6")]
542 pub with_properties: ::prost::alloc::collections::BTreeMap<
543 ::prost::alloc::string::String,
544 ::prost::alloc::string::String,
545 >,
546 #[prost(uint32, optional, tag = "7")]
548 pub rate_limit: ::core::option::Option<u32>,
549 #[prost(message, optional, tag = "8")]
551 pub state_table: ::core::option::Option<super::catalog::Table>,
552 #[prost(btree_map = "string, message", tag = "9")]
553 pub secret_refs: ::prost::alloc::collections::BTreeMap<
554 ::prost::alloc::string::String,
555 super::secret::SecretRef,
556 >,
557}
558#[derive(prost_helpers::AnyPB)]
559#[derive(Clone, PartialEq, ::prost::Message)]
560pub struct SinkDesc {
561 #[prost(uint32, tag = "1")]
562 pub id: u32,
563 #[prost(string, tag = "2")]
564 pub name: ::prost::alloc::string::String,
565 #[prost(string, tag = "3")]
566 pub definition: ::prost::alloc::string::String,
567 #[prost(message, repeated, tag = "5")]
568 pub plan_pk: ::prost::alloc::vec::Vec<super::common::ColumnOrder>,
569 #[prost(uint32, repeated, tag = "6")]
570 pub downstream_pk: ::prost::alloc::vec::Vec<u32>,
571 #[prost(uint32, repeated, tag = "7")]
572 pub distribution_key: ::prost::alloc::vec::Vec<u32>,
573 #[prost(btree_map = "string, string", tag = "8")]
574 pub properties: ::prost::alloc::collections::BTreeMap<
575 ::prost::alloc::string::String,
576 ::prost::alloc::string::String,
577 >,
578 #[prost(enumeration = "super::catalog::SinkType", tag = "9")]
580 pub sink_type: i32,
581 #[prost(message, repeated, tag = "10")]
582 pub column_catalogs: ::prost::alloc::vec::Vec<super::plan_common::ColumnCatalog>,
583 #[prost(string, tag = "11")]
584 pub db_name: ::prost::alloc::string::String,
585 #[prost(string, tag = "12")]
588 pub sink_from_name: ::prost::alloc::string::String,
589 #[prost(message, optional, tag = "13")]
590 pub format_desc: ::core::option::Option<super::catalog::SinkFormatDesc>,
591 #[prost(uint32, optional, tag = "14")]
592 pub target_table: ::core::option::Option<u32>,
593 #[prost(uint64, optional, tag = "15")]
594 pub extra_partition_col_idx: ::core::option::Option<u64>,
595 #[prost(btree_map = "string, message", tag = "16")]
596 pub secret_refs: ::prost::alloc::collections::BTreeMap<
597 ::prost::alloc::string::String,
598 super::secret::SecretRef,
599 >,
600}
601#[derive(prost_helpers::AnyPB)]
602#[derive(Clone, PartialEq, ::prost::Message)]
603pub struct SinkNode {
604 #[prost(message, optional, tag = "1")]
605 pub sink_desc: ::core::option::Option<SinkDesc>,
606 #[prost(message, optional, tag = "2")]
608 pub table: ::core::option::Option<super::catalog::Table>,
609 #[prost(enumeration = "SinkLogStoreType", tag = "3")]
610 pub log_store_type: i32,
611 #[prost(uint32, optional, tag = "4")]
612 pub rate_limit: ::core::option::Option<u32>,
613}
614#[derive(prost_helpers::AnyPB)]
615#[derive(Clone, PartialEq, ::prost::Message)]
616pub struct ProjectNode {
617 #[prost(message, repeated, tag = "1")]
618 pub select_list: ::prost::alloc::vec::Vec<super::expr::ExprNode>,
619 #[prost(uint32, repeated, tag = "2")]
623 pub watermark_input_cols: ::prost::alloc::vec::Vec<u32>,
624 #[prost(uint32, repeated, tag = "3")]
625 pub watermark_output_cols: ::prost::alloc::vec::Vec<u32>,
626 #[prost(uint32, repeated, tag = "4")]
627 pub nondecreasing_exprs: ::prost::alloc::vec::Vec<u32>,
628 #[prost(bool, tag = "5")]
631 pub noop_update_hint: bool,
632}
633#[derive(prost_helpers::AnyPB)]
634#[derive(Clone, PartialEq, ::prost::Message)]
635pub struct FilterNode {
636 #[prost(message, optional, tag = "1")]
637 pub search_condition: ::core::option::Option<super::expr::ExprNode>,
638}
639#[derive(prost_helpers::AnyPB)]
640#[derive(Clone, Copy, PartialEq, ::prost::Message)]
641pub struct ChangeLogNode {
642 #[prost(bool, tag = "1")]
644 pub need_op: bool,
645}
646#[derive(prost_helpers::AnyPB)]
647#[derive(Clone, PartialEq, ::prost::Message)]
648pub struct CdcFilterNode {
649 #[prost(message, optional, tag = "1")]
650 pub search_condition: ::core::option::Option<super::expr::ExprNode>,
651 #[prost(uint32, tag = "2")]
652 pub upstream_source_id: u32,
653}
654#[derive(prost_helpers::AnyPB)]
662#[derive(Clone, PartialEq, ::prost::Message)]
663pub struct MaterializeNode {
664 #[prost(uint32, tag = "1")]
665 pub table_id: u32,
666 #[prost(message, repeated, tag = "2")]
668 pub column_orders: ::prost::alloc::vec::Vec<super::common::ColumnOrder>,
669 #[prost(message, optional, tag = "3")]
671 pub table: ::core::option::Option<super::catalog::Table>,
672}
673#[derive(prost_helpers::AnyPB)]
674#[derive(Clone, PartialEq, ::prost::Message)]
675pub struct AggCallState {
676 #[prost(oneof = "agg_call_state::Inner", tags = "1, 3")]
677 pub inner: ::core::option::Option<agg_call_state::Inner>,
678}
679pub mod agg_call_state {
681 #[derive(prost_helpers::AnyPB)]
683 #[derive(Clone, Copy, PartialEq, ::prost::Message)]
684 pub struct ValueState {}
685 #[derive(prost_helpers::AnyPB)]
687 #[derive(Clone, PartialEq, ::prost::Message)]
688 pub struct MaterializedInputState {
689 #[prost(message, optional, tag = "1")]
690 pub table: ::core::option::Option<super::super::catalog::Table>,
691 #[prost(uint32, repeated, tag = "2")]
693 pub included_upstream_indices: ::prost::alloc::vec::Vec<u32>,
694 #[prost(uint32, repeated, tag = "3")]
695 pub table_value_indices: ::prost::alloc::vec::Vec<u32>,
696 #[prost(message, repeated, tag = "4")]
697 pub order_columns: ::prost::alloc::vec::Vec<super::super::common::ColumnOrder>,
698 }
699 #[derive(prost_helpers::AnyPB)]
700 #[derive(Clone, PartialEq, ::prost::Oneof)]
701 pub enum Inner {
702 #[prost(message, tag = "1")]
703 ValueState(ValueState),
704 #[prost(message, tag = "3")]
705 MaterializedInputState(MaterializedInputState),
706 }
707}
708#[derive(prost_helpers::AnyPB)]
709#[derive(Clone, PartialEq, ::prost::Message)]
710pub struct SimpleAggNode {
711 #[prost(message, repeated, tag = "1")]
712 pub agg_calls: ::prost::alloc::vec::Vec<super::expr::AggCall>,
713 #[prost(message, repeated, tag = "3")]
714 pub agg_call_states: ::prost::alloc::vec::Vec<AggCallState>,
715 #[prost(message, optional, tag = "4")]
716 pub intermediate_state_table: ::core::option::Option<super::catalog::Table>,
717 #[prost(bool, tag = "5")]
720 pub is_append_only: bool,
721 #[prost(map = "uint32, message", tag = "6")]
722 pub distinct_dedup_tables: ::std::collections::HashMap<u32, super::catalog::Table>,
723 #[prost(uint32, tag = "7")]
724 pub row_count_index: u32,
725 #[prost(enumeration = "AggNodeVersion", tag = "8")]
726 pub version: i32,
727 #[prost(bool, tag = "9")]
730 pub must_output_per_barrier: bool,
731}
732#[derive(prost_helpers::AnyPB)]
733#[derive(Clone, PartialEq, ::prost::Message)]
734pub struct HashAggNode {
735 #[prost(uint32, repeated, tag = "1")]
736 pub group_key: ::prost::alloc::vec::Vec<u32>,
737 #[prost(message, repeated, tag = "2")]
738 pub agg_calls: ::prost::alloc::vec::Vec<super::expr::AggCall>,
739 #[prost(message, repeated, tag = "3")]
740 pub agg_call_states: ::prost::alloc::vec::Vec<AggCallState>,
741 #[prost(message, optional, tag = "4")]
742 pub intermediate_state_table: ::core::option::Option<super::catalog::Table>,
743 #[prost(bool, tag = "5")]
746 pub is_append_only: bool,
747 #[prost(map = "uint32, message", tag = "6")]
748 pub distinct_dedup_tables: ::std::collections::HashMap<u32, super::catalog::Table>,
749 #[prost(uint32, tag = "7")]
750 pub row_count_index: u32,
751 #[prost(bool, tag = "8")]
752 pub emit_on_window_close: bool,
753 #[prost(enumeration = "AggNodeVersion", tag = "9")]
754 pub version: i32,
755}
756#[derive(prost_helpers::AnyPB)]
757#[derive(Clone, PartialEq, ::prost::Message)]
758pub struct TopNNode {
759 #[prost(uint64, tag = "1")]
761 pub limit: u64,
762 #[prost(uint64, tag = "2")]
763 pub offset: u64,
764 #[prost(message, optional, tag = "3")]
765 pub table: ::core::option::Option<super::catalog::Table>,
766 #[prost(message, repeated, tag = "4")]
767 pub order_by: ::prost::alloc::vec::Vec<super::common::ColumnOrder>,
768 #[prost(bool, tag = "5")]
769 pub with_ties: bool,
770}
771#[derive(prost_helpers::AnyPB)]
772#[derive(Clone, PartialEq, ::prost::Message)]
773pub struct GroupTopNNode {
774 #[prost(uint64, tag = "1")]
776 pub limit: u64,
777 #[prost(uint64, tag = "2")]
778 pub offset: u64,
779 #[prost(uint32, repeated, tag = "3")]
780 pub group_key: ::prost::alloc::vec::Vec<u32>,
781 #[prost(message, optional, tag = "4")]
782 pub table: ::core::option::Option<super::catalog::Table>,
783 #[prost(message, repeated, tag = "5")]
784 pub order_by: ::prost::alloc::vec::Vec<super::common::ColumnOrder>,
785 #[prost(bool, tag = "6")]
786 pub with_ties: bool,
787}
788#[derive(prost_helpers::AnyPB)]
789#[derive(Clone, PartialEq, ::prost::Message)]
790pub struct DeltaExpression {
791 #[prost(enumeration = "super::expr::expr_node::Type", tag = "1")]
792 pub delta_type: i32,
793 #[prost(message, optional, tag = "2")]
794 pub delta: ::core::option::Option<super::expr::ExprNode>,
795}
796#[derive(prost_helpers::AnyPB)]
797#[derive(Clone, PartialEq, ::prost::Message)]
798pub struct InequalityPair {
799 #[prost(uint32, tag = "1")]
801 pub key_required_larger: u32,
802 #[prost(uint32, tag = "2")]
804 pub key_required_smaller: u32,
805 #[prost(bool, tag = "3")]
807 pub clean_state: bool,
808 #[prost(message, optional, tag = "4")]
810 pub delta_expression: ::core::option::Option<DeltaExpression>,
811}
812#[derive(prost_helpers::AnyPB)]
813#[derive(Clone, PartialEq, ::prost::Message)]
814pub struct HashJoinNode {
815 #[prost(enumeration = "super::plan_common::JoinType", tag = "1")]
816 pub join_type: i32,
817 #[prost(int32, repeated, tag = "2")]
818 pub left_key: ::prost::alloc::vec::Vec<i32>,
819 #[prost(int32, repeated, tag = "3")]
820 pub right_key: ::prost::alloc::vec::Vec<i32>,
821 #[prost(message, optional, tag = "4")]
822 pub condition: ::core::option::Option<super::expr::ExprNode>,
823 #[prost(message, repeated, tag = "5")]
824 pub inequality_pairs: ::prost::alloc::vec::Vec<InequalityPair>,
825 #[prost(message, optional, tag = "6")]
827 pub left_table: ::core::option::Option<super::catalog::Table>,
828 #[prost(message, optional, tag = "7")]
830 pub right_table: ::core::option::Option<super::catalog::Table>,
831 #[prost(message, optional, tag = "8")]
833 pub left_degree_table: ::core::option::Option<super::catalog::Table>,
834 #[prost(message, optional, tag = "9")]
836 pub right_degree_table: ::core::option::Option<super::catalog::Table>,
837 #[prost(uint32, repeated, tag = "10")]
839 pub output_indices: ::prost::alloc::vec::Vec<u32>,
840 #[prost(uint32, repeated, tag = "11")]
845 pub left_deduped_input_pk_indices: ::prost::alloc::vec::Vec<u32>,
846 #[prost(uint32, repeated, tag = "12")]
851 pub right_deduped_input_pk_indices: ::prost::alloc::vec::Vec<u32>,
852 #[prost(bool, repeated, tag = "13")]
853 pub null_safe: ::prost::alloc::vec::Vec<bool>,
854 #[prost(bool, tag = "14")]
857 pub is_append_only: bool,
858 #[prost(enumeration = "JoinEncodingType", tag = "15")]
860 pub join_encoding_type: i32,
861}
862#[derive(prost_helpers::AnyPB)]
863#[derive(Clone, PartialEq, ::prost::Message)]
864pub struct AsOfJoinNode {
865 #[prost(enumeration = "super::plan_common::AsOfJoinType", tag = "1")]
866 pub join_type: i32,
867 #[prost(int32, repeated, tag = "2")]
868 pub left_key: ::prost::alloc::vec::Vec<i32>,
869 #[prost(int32, repeated, tag = "3")]
870 pub right_key: ::prost::alloc::vec::Vec<i32>,
871 #[prost(message, optional, tag = "4")]
873 pub left_table: ::core::option::Option<super::catalog::Table>,
874 #[prost(message, optional, tag = "5")]
876 pub right_table: ::core::option::Option<super::catalog::Table>,
877 #[prost(uint32, repeated, tag = "6")]
879 pub output_indices: ::prost::alloc::vec::Vec<u32>,
880 #[prost(uint32, repeated, tag = "7")]
884 pub left_deduped_input_pk_indices: ::prost::alloc::vec::Vec<u32>,
885 #[prost(uint32, repeated, tag = "8")]
889 pub right_deduped_input_pk_indices: ::prost::alloc::vec::Vec<u32>,
890 #[prost(bool, repeated, tag = "9")]
891 pub null_safe: ::prost::alloc::vec::Vec<bool>,
892 #[prost(message, optional, tag = "10")]
893 pub asof_desc: ::core::option::Option<super::plan_common::AsOfJoinDesc>,
894 #[prost(enumeration = "JoinEncodingType", tag = "11")]
896 pub join_encoding_type: i32,
897}
898#[derive(prost_helpers::AnyPB)]
899#[derive(Clone, PartialEq, ::prost::Message)]
900pub struct TemporalJoinNode {
901 #[prost(enumeration = "super::plan_common::JoinType", tag = "1")]
902 pub join_type: i32,
903 #[prost(int32, repeated, tag = "2")]
904 pub left_key: ::prost::alloc::vec::Vec<i32>,
905 #[prost(int32, repeated, tag = "3")]
906 pub right_key: ::prost::alloc::vec::Vec<i32>,
907 #[prost(bool, repeated, tag = "4")]
908 pub null_safe: ::prost::alloc::vec::Vec<bool>,
909 #[prost(message, optional, tag = "5")]
910 pub condition: ::core::option::Option<super::expr::ExprNode>,
911 #[prost(uint32, repeated, tag = "6")]
913 pub output_indices: ::prost::alloc::vec::Vec<u32>,
914 #[prost(message, optional, tag = "7")]
916 pub table_desc: ::core::option::Option<super::plan_common::StorageTableDesc>,
917 #[prost(uint32, repeated, tag = "8")]
919 pub table_output_indices: ::prost::alloc::vec::Vec<u32>,
920 #[prost(message, optional, tag = "9")]
922 pub memo_table: ::core::option::Option<super::catalog::Table>,
923 #[prost(bool, tag = "10")]
925 pub is_nested_loop: bool,
926}
927#[derive(prost_helpers::AnyPB)]
928#[derive(Clone, PartialEq, ::prost::Message)]
929pub struct DynamicFilterNode {
930 #[prost(uint32, tag = "1")]
931 pub left_key: u32,
932 #[prost(message, optional, tag = "2")]
934 pub condition: ::core::option::Option<super::expr::ExprNode>,
935 #[prost(message, optional, tag = "3")]
937 pub left_table: ::core::option::Option<super::catalog::Table>,
938 #[prost(message, optional, tag = "4")]
940 pub right_table: ::core::option::Option<super::catalog::Table>,
941 #[deprecated]
948 #[prost(bool, tag = "5")]
949 pub condition_always_relax: bool,
950}
951#[derive(prost_helpers::AnyPB)]
954#[derive(Clone, PartialEq, ::prost::Message)]
955pub struct DeltaIndexJoinNode {
956 #[prost(enumeration = "super::plan_common::JoinType", tag = "1")]
957 pub join_type: i32,
958 #[prost(int32, repeated, tag = "2")]
959 pub left_key: ::prost::alloc::vec::Vec<i32>,
960 #[prost(int32, repeated, tag = "3")]
961 pub right_key: ::prost::alloc::vec::Vec<i32>,
962 #[prost(message, optional, tag = "4")]
963 pub condition: ::core::option::Option<super::expr::ExprNode>,
964 #[prost(uint32, tag = "7")]
966 pub left_table_id: u32,
967 #[prost(uint32, tag = "8")]
969 pub right_table_id: u32,
970 #[prost(message, optional, tag = "9")]
972 pub left_info: ::core::option::Option<ArrangementInfo>,
973 #[prost(message, optional, tag = "10")]
975 pub right_info: ::core::option::Option<ArrangementInfo>,
976 #[prost(uint32, repeated, tag = "11")]
978 pub output_indices: ::prost::alloc::vec::Vec<u32>,
979}
980#[derive(prost_helpers::AnyPB)]
981#[derive(Clone, PartialEq, ::prost::Message)]
982pub struct HopWindowNode {
983 #[prost(uint32, tag = "1")]
984 pub time_col: u32,
985 #[prost(message, optional, tag = "2")]
986 pub window_slide: ::core::option::Option<super::data::Interval>,
987 #[prost(message, optional, tag = "3")]
988 pub window_size: ::core::option::Option<super::data::Interval>,
989 #[prost(uint32, repeated, tag = "4")]
990 pub output_indices: ::prost::alloc::vec::Vec<u32>,
991 #[prost(message, repeated, tag = "5")]
992 pub window_start_exprs: ::prost::alloc::vec::Vec<super::expr::ExprNode>,
993 #[prost(message, repeated, tag = "6")]
994 pub window_end_exprs: ::prost::alloc::vec::Vec<super::expr::ExprNode>,
995}
996#[derive(prost_helpers::AnyPB)]
997#[derive(Clone, PartialEq, ::prost::Message)]
998pub struct MergeNode {
999 #[deprecated]
1006 #[prost(uint32, repeated, packed = "false", tag = "1")]
1007 pub upstream_actor_id: ::prost::alloc::vec::Vec<u32>,
1008 #[prost(uint32, tag = "2")]
1009 pub upstream_fragment_id: u32,
1010 #[prost(enumeration = "DispatcherType", tag = "3")]
1013 pub upstream_dispatcher_type: i32,
1014 #[deprecated]
1016 #[prost(message, repeated, tag = "4")]
1017 pub fields: ::prost::alloc::vec::Vec<super::plan_common::Field>,
1018}
1019#[derive(prost_helpers::AnyPB)]
1022#[derive(Clone, PartialEq, ::prost::Message)]
1023pub struct ExchangeNode {
1024 #[prost(message, optional, tag = "1")]
1025 pub strategy: ::core::option::Option<DispatchStrategy>,
1026}
1027#[derive(prost_helpers::AnyPB)]
1032#[derive(Clone, PartialEq, ::prost::Message)]
1033pub struct StreamScanNode {
1034 #[prost(uint32, tag = "1")]
1035 pub table_id: u32,
1036 #[prost(int32, repeated, tag = "2")]
1040 pub upstream_column_ids: ::prost::alloc::vec::Vec<i32>,
1041 #[prost(uint32, repeated, tag = "3")]
1045 pub output_indices: ::prost::alloc::vec::Vec<u32>,
1046 #[prost(enumeration = "StreamScanType", tag = "4")]
1051 pub stream_scan_type: i32,
1052 #[prost(message, optional, tag = "5")]
1054 pub state_table: ::core::option::Option<super::catalog::Table>,
1055 #[prost(message, optional, tag = "7")]
1058 pub table_desc: ::core::option::Option<super::plan_common::StorageTableDesc>,
1059 #[prost(uint32, optional, tag = "8")]
1061 pub rate_limit: ::core::option::Option<u32>,
1062 #[deprecated]
1064 #[prost(uint32, tag = "9")]
1065 pub snapshot_read_barrier_interval: u32,
1066 #[prost(message, optional, tag = "10")]
1069 pub arrangement_table: ::core::option::Option<super::catalog::Table>,
1070 #[prost(uint64, optional, tag = "11")]
1071 pub snapshot_backfill_epoch: ::core::option::Option<u64>,
1072}
1073#[derive(prost_helpers::AnyPB)]
1075#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1076pub struct StreamCdcScanOptions {
1077 #[prost(bool, tag = "1")]
1079 pub disable_backfill: bool,
1080 #[prost(uint32, tag = "2")]
1081 pub snapshot_barrier_interval: u32,
1082 #[prost(uint32, tag = "3")]
1083 pub snapshot_batch_size: u32,
1084 #[prost(uint32, tag = "4")]
1085 pub backfill_parallelism: u32,
1086 #[prost(uint64, tag = "5")]
1087 pub backfill_num_rows_per_split: u64,
1088 #[prost(bool, tag = "6")]
1089 pub backfill_as_even_splits: bool,
1090 #[prost(uint32, tag = "7")]
1091 pub backfill_split_pk_column_index: u32,
1092}
1093#[derive(prost_helpers::AnyPB)]
1094#[derive(Clone, PartialEq, ::prost::Message)]
1095pub struct StreamCdcScanNode {
1096 #[prost(uint32, tag = "1")]
1097 pub table_id: u32,
1098 #[prost(int32, repeated, tag = "2")]
1101 pub upstream_column_ids: ::prost::alloc::vec::Vec<i32>,
1102 #[prost(uint32, repeated, tag = "3")]
1104 pub output_indices: ::prost::alloc::vec::Vec<u32>,
1105 #[prost(message, optional, tag = "4")]
1107 pub state_table: ::core::option::Option<super::catalog::Table>,
1108 #[prost(message, optional, tag = "5")]
1110 pub cdc_table_desc: ::core::option::Option<super::plan_common::ExternalTableDesc>,
1111 #[prost(uint32, optional, tag = "6")]
1113 pub rate_limit: ::core::option::Option<u32>,
1114 #[prost(bool, tag = "7")]
1117 pub disable_backfill: bool,
1118 #[prost(message, optional, tag = "8")]
1119 pub options: ::core::option::Option<StreamCdcScanOptions>,
1120}
1121#[derive(prost_helpers::AnyPB)]
1125#[derive(Clone, PartialEq, ::prost::Message)]
1126pub struct BatchPlanNode {
1127 #[prost(message, optional, tag = "1")]
1128 pub table_desc: ::core::option::Option<super::plan_common::StorageTableDesc>,
1129 #[prost(int32, repeated, tag = "2")]
1130 pub column_ids: ::prost::alloc::vec::Vec<i32>,
1131}
1132#[derive(prost_helpers::AnyPB)]
1133#[derive(Clone, PartialEq, ::prost::Message)]
1134pub struct ArrangementInfo {
1135 #[prost(message, repeated, tag = "1")]
1138 pub arrange_key_orders: ::prost::alloc::vec::Vec<super::common::ColumnOrder>,
1139 #[prost(message, repeated, tag = "2")]
1141 pub column_descs: ::prost::alloc::vec::Vec<super::plan_common::ColumnDesc>,
1142 #[prost(message, optional, tag = "4")]
1144 pub table_desc: ::core::option::Option<super::plan_common::StorageTableDesc>,
1145 #[prost(uint32, repeated, tag = "5")]
1147 pub output_col_idx: ::prost::alloc::vec::Vec<u32>,
1148}
1149#[derive(prost_helpers::AnyPB)]
1152#[derive(Clone, PartialEq, ::prost::Message)]
1153pub struct ArrangeNode {
1154 #[prost(message, optional, tag = "1")]
1156 pub table_info: ::core::option::Option<ArrangementInfo>,
1157 #[prost(uint32, repeated, tag = "2")]
1159 pub distribution_key: ::prost::alloc::vec::Vec<u32>,
1160 #[prost(message, optional, tag = "3")]
1162 pub table: ::core::option::Option<super::catalog::Table>,
1163}
1164#[derive(prost_helpers::AnyPB)]
1166#[derive(Clone, PartialEq, ::prost::Message)]
1167pub struct LookupNode {
1168 #[prost(int32, repeated, tag = "1")]
1170 pub arrange_key: ::prost::alloc::vec::Vec<i32>,
1171 #[prost(int32, repeated, tag = "2")]
1173 pub stream_key: ::prost::alloc::vec::Vec<i32>,
1174 #[prost(bool, tag = "3")]
1176 pub use_current_epoch: bool,
1177 #[prost(int32, repeated, tag = "4")]
1181 pub column_mapping: ::prost::alloc::vec::Vec<i32>,
1182 #[prost(message, optional, tag = "7")]
1184 pub arrangement_table_info: ::core::option::Option<ArrangementInfo>,
1185 #[prost(oneof = "lookup_node::ArrangementTableId", tags = "5, 6")]
1186 pub arrangement_table_id: ::core::option::Option<lookup_node::ArrangementTableId>,
1187}
1188pub mod lookup_node {
1190 #[derive(prost_helpers::AnyPB)]
1191 #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
1192 pub enum ArrangementTableId {
1193 #[prost(uint32, tag = "5")]
1195 TableId(u32),
1196 #[prost(uint32, tag = "6")]
1198 IndexId(u32),
1199 }
1200}
1201#[derive(prost_helpers::AnyPB)]
1203#[derive(Clone, PartialEq, ::prost::Message)]
1204pub struct WatermarkFilterNode {
1205 #[prost(message, repeated, tag = "1")]
1207 pub watermark_descs: ::prost::alloc::vec::Vec<super::catalog::WatermarkDesc>,
1208 #[prost(message, repeated, tag = "2")]
1210 pub tables: ::prost::alloc::vec::Vec<super::catalog::Table>,
1211}
1212#[derive(prost_helpers::AnyPB)]
1214#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1215pub struct UnionNode {}
1216#[derive(prost_helpers::AnyPB)]
1218#[derive(Clone, PartialEq, ::prost::Message)]
1219pub struct LookupUnionNode {
1220 #[prost(uint32, repeated, tag = "1")]
1221 pub order: ::prost::alloc::vec::Vec<u32>,
1222}
1223#[derive(prost_helpers::AnyPB)]
1224#[derive(Clone, PartialEq, ::prost::Message)]
1225pub struct ExpandNode {
1226 #[prost(message, repeated, tag = "1")]
1227 pub column_subsets: ::prost::alloc::vec::Vec<expand_node::Subset>,
1228}
1229pub mod expand_node {
1231 #[derive(prost_helpers::AnyPB)]
1232 #[derive(Clone, PartialEq, ::prost::Message)]
1233 pub struct Subset {
1234 #[prost(uint32, repeated, tag = "1")]
1235 pub column_indices: ::prost::alloc::vec::Vec<u32>,
1236 }
1237}
1238#[derive(prost_helpers::AnyPB)]
1239#[derive(Clone, PartialEq, ::prost::Message)]
1240pub struct ProjectSetNode {
1241 #[prost(message, repeated, tag = "1")]
1242 pub select_list: ::prost::alloc::vec::Vec<super::expr::ProjectSetSelectItem>,
1243 #[prost(uint32, repeated, tag = "2")]
1247 pub watermark_input_cols: ::prost::alloc::vec::Vec<u32>,
1248 #[prost(uint32, repeated, tag = "3")]
1249 pub watermark_expr_indices: ::prost::alloc::vec::Vec<u32>,
1250 #[prost(uint32, repeated, tag = "4")]
1251 pub nondecreasing_exprs: ::prost::alloc::vec::Vec<u32>,
1252}
1253#[derive(prost_helpers::AnyPB)]
1255#[derive(Clone, PartialEq, ::prost::Message)]
1256pub struct SortNode {
1257 #[prost(message, optional, tag = "1")]
1259 pub state_table: ::core::option::Option<super::catalog::Table>,
1260 #[prost(uint32, tag = "2")]
1262 pub sort_column_index: u32,
1263}
1264#[derive(prost_helpers::AnyPB)]
1266#[derive(Clone, PartialEq, ::prost::Message)]
1267pub struct DmlNode {
1268 #[prost(uint32, tag = "1")]
1270 pub table_id: u32,
1271 #[prost(uint64, tag = "3")]
1273 pub table_version_id: u64,
1274 #[prost(message, repeated, tag = "2")]
1276 pub column_descs: ::prost::alloc::vec::Vec<super::plan_common::ColumnDesc>,
1277 #[prost(uint32, optional, tag = "4")]
1278 pub rate_limit: ::core::option::Option<u32>,
1279}
1280#[derive(prost_helpers::AnyPB)]
1281#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1282pub struct RowIdGenNode {
1283 #[prost(uint64, tag = "1")]
1284 pub row_id_index: u64,
1285}
1286#[derive(prost_helpers::AnyPB)]
1287#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1288pub struct NowModeUpdateCurrent {}
1289#[derive(prost_helpers::AnyPB)]
1290#[derive(Clone, PartialEq, ::prost::Message)]
1291pub struct NowModeGenerateSeries {
1292 #[prost(message, optional, tag = "1")]
1293 pub start_timestamp: ::core::option::Option<super::data::Datum>,
1294 #[prost(message, optional, tag = "2")]
1295 pub interval: ::core::option::Option<super::data::Datum>,
1296}
1297#[derive(prost_helpers::AnyPB)]
1298#[derive(Clone, PartialEq, ::prost::Message)]
1299pub struct NowNode {
1300 #[prost(message, optional, tag = "1")]
1302 pub state_table: ::core::option::Option<super::catalog::Table>,
1303 #[prost(oneof = "now_node::Mode", tags = "101, 102")]
1304 pub mode: ::core::option::Option<now_node::Mode>,
1305}
1306pub mod now_node {
1308 #[derive(prost_helpers::AnyPB)]
1309 #[derive(Clone, PartialEq, ::prost::Oneof)]
1310 pub enum Mode {
1311 #[prost(message, tag = "101")]
1312 UpdateCurrent(super::NowModeUpdateCurrent),
1313 #[prost(message, tag = "102")]
1314 GenerateSeries(super::NowModeGenerateSeries),
1315 }
1316}
1317#[derive(prost_helpers::AnyPB)]
1318#[derive(Clone, PartialEq, ::prost::Message)]
1319pub struct ValuesNode {
1320 #[prost(message, repeated, tag = "1")]
1321 pub tuples: ::prost::alloc::vec::Vec<values_node::ExprTuple>,
1322 #[prost(message, repeated, tag = "2")]
1323 pub fields: ::prost::alloc::vec::Vec<super::plan_common::Field>,
1324}
1325pub mod values_node {
1327 #[derive(prost_helpers::AnyPB)]
1328 #[derive(Clone, PartialEq, ::prost::Message)]
1329 pub struct ExprTuple {
1330 #[prost(message, repeated, tag = "1")]
1331 pub cells: ::prost::alloc::vec::Vec<super::super::expr::ExprNode>,
1332 }
1333}
1334#[derive(prost_helpers::AnyPB)]
1335#[derive(Clone, PartialEq, ::prost::Message)]
1336pub struct DedupNode {
1337 #[prost(message, optional, tag = "1")]
1338 pub state_table: ::core::option::Option<super::catalog::Table>,
1339 #[prost(uint32, repeated, tag = "2")]
1340 pub dedup_column_indices: ::prost::alloc::vec::Vec<u32>,
1341}
1342#[derive(prost_helpers::AnyPB)]
1343#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1344pub struct NoOpNode {}
1345#[derive(prost_helpers::AnyPB)]
1346#[derive(Clone, PartialEq, ::prost::Message)]
1347pub struct EowcOverWindowNode {
1348 #[prost(message, repeated, tag = "1")]
1349 pub calls: ::prost::alloc::vec::Vec<super::expr::WindowFunction>,
1350 #[prost(uint32, repeated, tag = "2")]
1351 pub partition_by: ::prost::alloc::vec::Vec<u32>,
1352 #[prost(message, repeated, tag = "3")]
1354 pub order_by: ::prost::alloc::vec::Vec<super::common::ColumnOrder>,
1355 #[prost(message, optional, tag = "4")]
1356 pub state_table: ::core::option::Option<super::catalog::Table>,
1357}
1358#[derive(prost_helpers::AnyPB)]
1359#[derive(Clone, PartialEq, ::prost::Message)]
1360pub struct OverWindowNode {
1361 #[prost(message, repeated, tag = "1")]
1362 pub calls: ::prost::alloc::vec::Vec<super::expr::WindowFunction>,
1363 #[prost(uint32, repeated, tag = "2")]
1364 pub partition_by: ::prost::alloc::vec::Vec<u32>,
1365 #[prost(message, repeated, tag = "3")]
1366 pub order_by: ::prost::alloc::vec::Vec<super::common::ColumnOrder>,
1367 #[prost(message, optional, tag = "4")]
1368 pub state_table: ::core::option::Option<super::catalog::Table>,
1369 #[prost(enumeration = "OverWindowCachePolicy", tag = "5")]
1370 pub cache_policy: i32,
1371}
1372#[derive(prost_helpers::AnyPB)]
1373#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1374pub struct LocalApproxPercentileNode {
1375 #[prost(double, tag = "1")]
1376 pub base: f64,
1377 #[prost(uint32, tag = "2")]
1378 pub percentile_index: u32,
1379}
1380#[derive(prost_helpers::AnyPB)]
1381#[derive(Clone, PartialEq, ::prost::Message)]
1382pub struct GlobalApproxPercentileNode {
1383 #[prost(double, tag = "1")]
1384 pub base: f64,
1385 #[prost(double, tag = "2")]
1386 pub quantile: f64,
1387 #[prost(message, optional, tag = "3")]
1388 pub bucket_state_table: ::core::option::Option<super::catalog::Table>,
1389 #[prost(message, optional, tag = "4")]
1390 pub count_state_table: ::core::option::Option<super::catalog::Table>,
1391}
1392#[derive(prost_helpers::AnyPB)]
1393#[derive(Clone, PartialEq, ::prost::Message)]
1394pub struct RowMergeNode {
1395 #[prost(message, optional, tag = "1")]
1396 pub lhs_mapping: ::core::option::Option<super::catalog::ColIndexMapping>,
1397 #[prost(message, optional, tag = "2")]
1398 pub rhs_mapping: ::core::option::Option<super::catalog::ColIndexMapping>,
1399}
1400#[derive(prost_helpers::AnyPB)]
1401#[derive(Clone, PartialEq, ::prost::Message)]
1402pub struct SyncLogStoreNode {
1403 #[prost(message, optional, tag = "1")]
1404 pub log_store_table: ::core::option::Option<super::catalog::Table>,
1405 #[prost(uint32, tag = "2")]
1406 pub pause_duration_ms: u32,
1407 #[prost(uint32, tag = "3")]
1408 pub buffer_size: u32,
1409 #[prost(bool, tag = "4")]
1410 pub aligned: bool,
1411}
1412#[derive(prost_helpers::AnyPB)]
1413#[derive(Clone, PartialEq, ::prost::Message)]
1414pub struct MaterializedExprsNode {
1415 #[prost(message, repeated, tag = "1")]
1416 pub exprs: ::prost::alloc::vec::Vec<super::expr::ExprNode>,
1417 #[prost(message, optional, tag = "2")]
1418 pub state_table: ::core::option::Option<super::catalog::Table>,
1419 #[prost(uint32, optional, tag = "3")]
1420 pub state_clean_col_idx: ::core::option::Option<u32>,
1421}
1422#[derive(prost_helpers::AnyPB)]
1423#[derive(Clone, PartialEq, ::prost::Message)]
1424pub struct VectorIndexWriteNode {
1425 #[prost(message, optional, tag = "1")]
1426 pub table: ::core::option::Option<super::catalog::Table>,
1427}
1428#[derive(prost_helpers::AnyPB)]
1429#[derive(Clone, PartialEq, ::prost::Message)]
1430pub struct UpstreamSinkUnionNode {
1431 #[prost(message, repeated, tag = "1")]
1434 pub init_upstreams: ::prost::alloc::vec::Vec<UpstreamSinkInfo>,
1435}
1436#[derive(prost_helpers::AnyPB)]
1437#[derive(Clone, PartialEq, ::prost::Message)]
1438pub struct StreamNode {
1439 #[prost(uint64, tag = "1")]
1442 pub operator_id: u64,
1443 #[prost(message, repeated, tag = "3")]
1445 pub input: ::prost::alloc::vec::Vec<StreamNode>,
1446 #[prost(uint32, repeated, tag = "2")]
1447 pub stream_key: ::prost::alloc::vec::Vec<u32>,
1448 #[prost(enumeration = "stream_node::StreamKind", tag = "24")]
1449 pub stream_kind: i32,
1450 #[prost(string, tag = "18")]
1451 pub identity: ::prost::alloc::string::String,
1452 #[prost(message, repeated, tag = "19")]
1454 pub fields: ::prost::alloc::vec::Vec<super::plan_common::Field>,
1455 #[prost(
1456 oneof = "stream_node::NodeBody",
1457 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"
1458 )]
1459 pub node_body: ::core::option::Option<stream_node::NodeBody>,
1460}
1461pub mod stream_node {
1463 #[derive(prost_helpers::AnyPB)]
1466 #[derive(
1467 Clone,
1468 Copy,
1469 Debug,
1470 PartialEq,
1471 Eq,
1472 Hash,
1473 PartialOrd,
1474 Ord,
1475 ::prost::Enumeration
1476 )]
1477 #[repr(i32)]
1478 pub enum StreamKind {
1479 Retract = 0,
1481 AppendOnly = 1,
1482 Upsert = 2,
1483 }
1484 impl StreamKind {
1485 pub fn as_str_name(&self) -> &'static str {
1490 match self {
1491 Self::Retract => "STREAM_KIND_RETRACT",
1492 Self::AppendOnly => "STREAM_KIND_APPEND_ONLY",
1493 Self::Upsert => "STREAM_KIND_UPSERT",
1494 }
1495 }
1496 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1498 match value {
1499 "STREAM_KIND_RETRACT" => Some(Self::Retract),
1500 "STREAM_KIND_APPEND_ONLY" => Some(Self::AppendOnly),
1501 "STREAM_KIND_UPSERT" => Some(Self::Upsert),
1502 _ => None,
1503 }
1504 }
1505 }
1506 #[derive(prost_helpers::AnyPB)]
1507 #[derive(::enum_as_inner::EnumAsInner, ::strum::Display, ::strum::EnumDiscriminants)]
1508 #[strum_discriminants(derive(::strum::Display, Hash))]
1509 #[derive(Clone, PartialEq, ::prost::Oneof)]
1510 pub enum NodeBody {
1511 #[prost(message, tag = "100")]
1512 Source(::prost::alloc::boxed::Box<super::SourceNode>),
1513 #[prost(message, tag = "101")]
1514 Project(::prost::alloc::boxed::Box<super::ProjectNode>),
1515 #[prost(message, tag = "102")]
1516 Filter(::prost::alloc::boxed::Box<super::FilterNode>),
1517 #[prost(message, tag = "103")]
1518 Materialize(::prost::alloc::boxed::Box<super::MaterializeNode>),
1519 #[prost(message, tag = "104")]
1520 StatelessSimpleAgg(::prost::alloc::boxed::Box<super::SimpleAggNode>),
1521 #[prost(message, tag = "105")]
1522 SimpleAgg(::prost::alloc::boxed::Box<super::SimpleAggNode>),
1523 #[prost(message, tag = "106")]
1524 HashAgg(::prost::alloc::boxed::Box<super::HashAggNode>),
1525 #[prost(message, tag = "107")]
1526 AppendOnlyTopN(::prost::alloc::boxed::Box<super::TopNNode>),
1527 #[prost(message, tag = "108")]
1528 HashJoin(::prost::alloc::boxed::Box<super::HashJoinNode>),
1529 #[prost(message, tag = "109")]
1530 TopN(::prost::alloc::boxed::Box<super::TopNNode>),
1531 #[prost(message, tag = "110")]
1532 HopWindow(::prost::alloc::boxed::Box<super::HopWindowNode>),
1533 #[prost(message, tag = "111")]
1534 Merge(::prost::alloc::boxed::Box<super::MergeNode>),
1535 #[prost(message, tag = "112")]
1536 Exchange(::prost::alloc::boxed::Box<super::ExchangeNode>),
1537 #[prost(message, tag = "113")]
1538 StreamScan(::prost::alloc::boxed::Box<super::StreamScanNode>),
1539 #[prost(message, tag = "114")]
1540 BatchPlan(::prost::alloc::boxed::Box<super::BatchPlanNode>),
1541 #[prost(message, tag = "115")]
1542 Lookup(::prost::alloc::boxed::Box<super::LookupNode>),
1543 #[prost(message, tag = "116")]
1544 Arrange(::prost::alloc::boxed::Box<super::ArrangeNode>),
1545 #[prost(message, tag = "117")]
1546 LookupUnion(::prost::alloc::boxed::Box<super::LookupUnionNode>),
1547 #[prost(message, tag = "118")]
1548 Union(super::UnionNode),
1549 #[prost(message, tag = "119")]
1550 DeltaIndexJoin(::prost::alloc::boxed::Box<super::DeltaIndexJoinNode>),
1551 #[prost(message, tag = "120")]
1552 Sink(::prost::alloc::boxed::Box<super::SinkNode>),
1553 #[prost(message, tag = "121")]
1554 Expand(::prost::alloc::boxed::Box<super::ExpandNode>),
1555 #[prost(message, tag = "122")]
1556 DynamicFilter(::prost::alloc::boxed::Box<super::DynamicFilterNode>),
1557 #[prost(message, tag = "123")]
1558 ProjectSet(::prost::alloc::boxed::Box<super::ProjectSetNode>),
1559 #[prost(message, tag = "124")]
1560 GroupTopN(::prost::alloc::boxed::Box<super::GroupTopNNode>),
1561 #[prost(message, tag = "125")]
1562 Sort(::prost::alloc::boxed::Box<super::SortNode>),
1563 #[prost(message, tag = "126")]
1564 WatermarkFilter(::prost::alloc::boxed::Box<super::WatermarkFilterNode>),
1565 #[prost(message, tag = "127")]
1566 Dml(::prost::alloc::boxed::Box<super::DmlNode>),
1567 #[prost(message, tag = "128")]
1568 RowIdGen(::prost::alloc::boxed::Box<super::RowIdGenNode>),
1569 #[prost(message, tag = "129")]
1570 Now(::prost::alloc::boxed::Box<super::NowNode>),
1571 #[prost(message, tag = "130")]
1572 AppendOnlyGroupTopN(::prost::alloc::boxed::Box<super::GroupTopNNode>),
1573 #[prost(message, tag = "131")]
1574 TemporalJoin(::prost::alloc::boxed::Box<super::TemporalJoinNode>),
1575 #[prost(message, tag = "132")]
1576 BarrierRecv(::prost::alloc::boxed::Box<super::BarrierRecvNode>),
1577 #[prost(message, tag = "133")]
1578 Values(::prost::alloc::boxed::Box<super::ValuesNode>),
1579 #[prost(message, tag = "134")]
1580 AppendOnlyDedup(::prost::alloc::boxed::Box<super::DedupNode>),
1581 #[prost(message, tag = "135")]
1582 NoOp(super::NoOpNode),
1583 #[prost(message, tag = "136")]
1584 EowcOverWindow(::prost::alloc::boxed::Box<super::EowcOverWindowNode>),
1585 #[prost(message, tag = "137")]
1586 OverWindow(::prost::alloc::boxed::Box<super::OverWindowNode>),
1587 #[prost(message, tag = "138")]
1588 StreamFsFetch(::prost::alloc::boxed::Box<super::StreamFsFetchNode>),
1589 #[prost(message, tag = "139")]
1590 StreamCdcScan(::prost::alloc::boxed::Box<super::StreamCdcScanNode>),
1591 #[prost(message, tag = "140")]
1592 CdcFilter(::prost::alloc::boxed::Box<super::CdcFilterNode>),
1593 #[prost(message, tag = "142")]
1594 SourceBackfill(::prost::alloc::boxed::Box<super::SourceBackfillNode>),
1595 #[prost(message, tag = "143")]
1596 Changelog(::prost::alloc::boxed::Box<super::ChangeLogNode>),
1597 #[prost(message, tag = "144")]
1598 LocalApproxPercentile(
1599 ::prost::alloc::boxed::Box<super::LocalApproxPercentileNode>,
1600 ),
1601 #[prost(message, tag = "145")]
1602 GlobalApproxPercentile(
1603 ::prost::alloc::boxed::Box<super::GlobalApproxPercentileNode>,
1604 ),
1605 #[prost(message, tag = "146")]
1606 RowMerge(::prost::alloc::boxed::Box<super::RowMergeNode>),
1607 #[prost(message, tag = "147")]
1608 AsOfJoin(::prost::alloc::boxed::Box<super::AsOfJoinNode>),
1609 #[prost(message, tag = "148")]
1610 SyncLogStore(::prost::alloc::boxed::Box<super::SyncLogStoreNode>),
1611 #[prost(message, tag = "149")]
1612 MaterializedExprs(::prost::alloc::boxed::Box<super::MaterializedExprsNode>),
1613 #[prost(message, tag = "150")]
1614 VectorIndexWrite(::prost::alloc::boxed::Box<super::VectorIndexWriteNode>),
1615 #[prost(message, tag = "151")]
1616 UpstreamSinkUnion(::prost::alloc::boxed::Box<super::UpstreamSinkUnionNode>),
1617 }
1618}
1619#[derive(prost_helpers::AnyPB)]
1632#[derive(Clone, PartialEq, ::prost::Message)]
1633pub struct DispatchOutputMapping {
1634 #[prost(uint32, repeated, tag = "1")]
1636 pub indices: ::prost::alloc::vec::Vec<u32>,
1637 #[prost(message, repeated, tag = "2")]
1642 pub types: ::prost::alloc::vec::Vec<dispatch_output_mapping::TypePair>,
1643}
1644pub mod dispatch_output_mapping {
1646 #[derive(prost_helpers::AnyPB)]
1647 #[derive(Clone, PartialEq, ::prost::Message)]
1648 pub struct TypePair {
1649 #[prost(message, optional, tag = "1")]
1650 pub upstream: ::core::option::Option<super::super::data::DataType>,
1651 #[prost(message, optional, tag = "2")]
1652 pub downstream: ::core::option::Option<super::super::data::DataType>,
1653 }
1654}
1655#[derive(prost_helpers::AnyPB)]
1658#[derive(Clone, PartialEq, ::prost::Message)]
1659pub struct DispatchStrategy {
1660 #[prost(enumeration = "DispatcherType", tag = "1")]
1661 pub r#type: i32,
1662 #[prost(uint32, repeated, tag = "2")]
1663 pub dist_key_indices: ::prost::alloc::vec::Vec<u32>,
1664 #[prost(message, optional, tag = "3")]
1665 pub output_mapping: ::core::option::Option<DispatchOutputMapping>,
1666}
1667#[derive(prost_helpers::AnyPB)]
1670#[derive(Clone, PartialEq, ::prost::Message)]
1671pub struct Dispatcher {
1672 #[prost(enumeration = "DispatcherType", tag = "1")]
1673 pub r#type: i32,
1674 #[prost(uint32, repeated, tag = "2")]
1677 pub dist_key_indices: ::prost::alloc::vec::Vec<u32>,
1678 #[prost(message, optional, tag = "6")]
1680 pub output_mapping: ::core::option::Option<DispatchOutputMapping>,
1681 #[prost(message, optional, tag = "3")]
1684 pub hash_mapping: ::core::option::Option<ActorMapping>,
1685 #[prost(uint64, tag = "4")]
1688 pub dispatcher_id: u64,
1689 #[prost(uint32, repeated, tag = "5")]
1691 pub downstream_actor_id: ::prost::alloc::vec::Vec<u32>,
1692}
1693#[derive(prost_helpers::AnyPB)]
1695#[derive(Clone, PartialEq, ::prost::Message)]
1696pub struct StreamActor {
1697 #[prost(uint32, tag = "1")]
1698 pub actor_id: u32,
1699 #[prost(uint32, tag = "2")]
1700 pub fragment_id: u32,
1701 #[prost(message, repeated, tag = "4")]
1702 pub dispatcher: ::prost::alloc::vec::Vec<Dispatcher>,
1703 #[prost(message, optional, tag = "8")]
1706 pub vnode_bitmap: ::core::option::Option<super::common::Buffer>,
1707 #[prost(string, tag = "9")]
1709 pub mview_definition: ::prost::alloc::string::String,
1710 #[prost(message, optional, tag = "10")]
1712 pub expr_context: ::core::option::Option<super::plan_common::ExprContext>,
1713}
1714#[derive(prost_helpers::AnyPB)]
1716#[derive(Clone, PartialEq, ::prost::Message)]
1717pub struct StreamContext {
1718 #[prost(string, tag = "1")]
1720 pub timezone: ::prost::alloc::string::String,
1721}
1722#[derive(prost_helpers::AnyPB)]
1723#[derive(Clone, PartialEq, ::prost::Message)]
1724pub struct BackfillOrder {
1725 #[prost(map = "uint32, message", tag = "1")]
1726 pub order: ::std::collections::HashMap<u32, super::common::Uint32Vector>,
1727}
1728#[derive(prost_helpers::AnyPB)]
1733#[derive(Clone, PartialEq, ::prost::Message)]
1734pub struct StreamFragmentGraph {
1735 #[prost(map = "uint32, message", tag = "1")]
1737 pub fragments: ::std::collections::HashMap<
1738 u32,
1739 stream_fragment_graph::StreamFragment,
1740 >,
1741 #[prost(message, repeated, tag = "2")]
1743 pub edges: ::prost::alloc::vec::Vec<stream_fragment_graph::StreamFragmentEdge>,
1744 #[prost(uint32, repeated, tag = "3")]
1745 pub dependent_table_ids: ::prost::alloc::vec::Vec<u32>,
1746 #[prost(uint32, tag = "4")]
1747 pub table_ids_cnt: u32,
1748 #[prost(message, optional, tag = "5")]
1749 pub ctx: ::core::option::Option<StreamContext>,
1750 #[prost(message, optional, tag = "6")]
1752 pub parallelism: ::core::option::Option<stream_fragment_graph::Parallelism>,
1753 #[prost(uint32, tag = "7")]
1763 pub max_parallelism: u32,
1764 #[prost(message, optional, tag = "8")]
1766 pub backfill_order: ::core::option::Option<BackfillOrder>,
1767}
1768pub mod stream_fragment_graph {
1770 #[derive(prost_helpers::AnyPB)]
1771 #[derive(Clone, PartialEq, ::prost::Message)]
1772 pub struct StreamFragment {
1773 #[prost(uint32, tag = "1")]
1775 pub fragment_id: u32,
1776 #[prost(message, optional, tag = "2")]
1778 pub node: ::core::option::Option<super::StreamNode>,
1779 #[prost(uint32, tag = "3")]
1781 pub fragment_type_mask: u32,
1782 #[prost(bool, tag = "4")]
1786 pub requires_singleton: bool,
1787 #[prost(uint32, tag = "5")]
1789 pub table_ids_cnt: u32,
1790 #[prost(uint32, repeated, tag = "6")]
1792 pub upstream_table_ids: ::prost::alloc::vec::Vec<u32>,
1793 }
1794 #[derive(prost_helpers::AnyPB)]
1795 #[derive(Clone, PartialEq, ::prost::Message)]
1796 pub struct StreamFragmentEdge {
1797 #[prost(message, optional, tag = "1")]
1799 pub dispatch_strategy: ::core::option::Option<super::DispatchStrategy>,
1800 #[prost(uint64, tag = "3")]
1804 pub link_id: u64,
1805 #[prost(uint32, tag = "4")]
1806 pub upstream_id: u32,
1807 #[prost(uint32, tag = "5")]
1808 pub downstream_id: u32,
1809 }
1810 #[derive(prost_helpers::AnyPB)]
1811 #[derive(Clone, Copy, PartialEq, ::prost::Message)]
1812 pub struct Parallelism {
1813 #[prost(uint64, tag = "1")]
1814 pub parallelism: u64,
1815 }
1816}
1817#[derive(prost_helpers::AnyPB)]
1818#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1819#[repr(i32)]
1820pub enum SinkLogStoreType {
1821 Unspecified = 0,
1823 KvLogStore = 1,
1824 InMemoryLogStore = 2,
1825}
1826impl SinkLogStoreType {
1827 pub fn as_str_name(&self) -> &'static str {
1832 match self {
1833 Self::Unspecified => "SINK_LOG_STORE_TYPE_UNSPECIFIED",
1834 Self::KvLogStore => "SINK_LOG_STORE_TYPE_KV_LOG_STORE",
1835 Self::InMemoryLogStore => "SINK_LOG_STORE_TYPE_IN_MEMORY_LOG_STORE",
1836 }
1837 }
1838 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1840 match value {
1841 "SINK_LOG_STORE_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
1842 "SINK_LOG_STORE_TYPE_KV_LOG_STORE" => Some(Self::KvLogStore),
1843 "SINK_LOG_STORE_TYPE_IN_MEMORY_LOG_STORE" => Some(Self::InMemoryLogStore),
1844 _ => None,
1845 }
1846 }
1847}
1848#[derive(prost_helpers::AnyPB)]
1849#[derive(prost_helpers::Version)]
1850#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1851#[repr(i32)]
1852pub enum AggNodeVersion {
1853 Unspecified = 0,
1854 Issue12140 = 1,
1856 Issue13465 = 2,
1858}
1859impl AggNodeVersion {
1860 pub fn as_str_name(&self) -> &'static str {
1865 match self {
1866 Self::Unspecified => "AGG_NODE_VERSION_UNSPECIFIED",
1867 Self::Issue12140 => "AGG_NODE_VERSION_ISSUE_12140",
1868 Self::Issue13465 => "AGG_NODE_VERSION_ISSUE_13465",
1869 }
1870 }
1871 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1873 match value {
1874 "AGG_NODE_VERSION_UNSPECIFIED" => Some(Self::Unspecified),
1875 "AGG_NODE_VERSION_ISSUE_12140" => Some(Self::Issue12140),
1876 "AGG_NODE_VERSION_ISSUE_13465" => Some(Self::Issue13465),
1877 _ => None,
1878 }
1879 }
1880}
1881#[derive(prost_helpers::AnyPB)]
1882#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1883#[repr(i32)]
1884pub enum JoinEncodingType {
1885 Unspecified = 0,
1886 MemoryOptimized = 1,
1887 CpuOptimized = 2,
1888}
1889impl JoinEncodingType {
1890 pub fn as_str_name(&self) -> &'static str {
1895 match self {
1896 Self::Unspecified => "UNSPECIFIED",
1897 Self::MemoryOptimized => "MEMORY_OPTIMIZED",
1898 Self::CpuOptimized => "CPU_OPTIMIZED",
1899 }
1900 }
1901 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1903 match value {
1904 "UNSPECIFIED" => Some(Self::Unspecified),
1905 "MEMORY_OPTIMIZED" => Some(Self::MemoryOptimized),
1906 "CPU_OPTIMIZED" => Some(Self::CpuOptimized),
1907 _ => None,
1908 }
1909 }
1910}
1911#[derive(prost_helpers::AnyPB)]
1913#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1914#[repr(i32)]
1915pub enum StreamScanType {
1916 Unspecified = 0,
1917 Chain = 1,
1919 Rearrange = 2,
1921 Backfill = 3,
1923 UpstreamOnly = 4,
1925 ArrangementBackfill = 5,
1927 SnapshotBackfill = 6,
1929 CrossDbSnapshotBackfill = 7,
1931}
1932impl StreamScanType {
1933 pub fn as_str_name(&self) -> &'static str {
1938 match self {
1939 Self::Unspecified => "STREAM_SCAN_TYPE_UNSPECIFIED",
1940 Self::Chain => "STREAM_SCAN_TYPE_CHAIN",
1941 Self::Rearrange => "STREAM_SCAN_TYPE_REARRANGE",
1942 Self::Backfill => "STREAM_SCAN_TYPE_BACKFILL",
1943 Self::UpstreamOnly => "STREAM_SCAN_TYPE_UPSTREAM_ONLY",
1944 Self::ArrangementBackfill => "STREAM_SCAN_TYPE_ARRANGEMENT_BACKFILL",
1945 Self::SnapshotBackfill => "STREAM_SCAN_TYPE_SNAPSHOT_BACKFILL",
1946 Self::CrossDbSnapshotBackfill => {
1947 "STREAM_SCAN_TYPE_CROSS_DB_SNAPSHOT_BACKFILL"
1948 }
1949 }
1950 }
1951 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1953 match value {
1954 "STREAM_SCAN_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
1955 "STREAM_SCAN_TYPE_CHAIN" => Some(Self::Chain),
1956 "STREAM_SCAN_TYPE_REARRANGE" => Some(Self::Rearrange),
1957 "STREAM_SCAN_TYPE_BACKFILL" => Some(Self::Backfill),
1958 "STREAM_SCAN_TYPE_UPSTREAM_ONLY" => Some(Self::UpstreamOnly),
1959 "STREAM_SCAN_TYPE_ARRANGEMENT_BACKFILL" => Some(Self::ArrangementBackfill),
1960 "STREAM_SCAN_TYPE_SNAPSHOT_BACKFILL" => Some(Self::SnapshotBackfill),
1961 "STREAM_SCAN_TYPE_CROSS_DB_SNAPSHOT_BACKFILL" => {
1962 Some(Self::CrossDbSnapshotBackfill)
1963 }
1964 _ => None,
1965 }
1966 }
1967}
1968#[derive(prost_helpers::AnyPB)]
1969#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1970#[repr(i32)]
1971pub enum OverWindowCachePolicy {
1972 Unspecified = 0,
1973 Full = 1,
1974 Recent = 2,
1975 RecentFirstN = 3,
1976 RecentLastN = 4,
1977}
1978impl OverWindowCachePolicy {
1979 pub fn as_str_name(&self) -> &'static str {
1984 match self {
1985 Self::Unspecified => "OVER_WINDOW_CACHE_POLICY_UNSPECIFIED",
1986 Self::Full => "OVER_WINDOW_CACHE_POLICY_FULL",
1987 Self::Recent => "OVER_WINDOW_CACHE_POLICY_RECENT",
1988 Self::RecentFirstN => "OVER_WINDOW_CACHE_POLICY_RECENT_FIRST_N",
1989 Self::RecentLastN => "OVER_WINDOW_CACHE_POLICY_RECENT_LAST_N",
1990 }
1991 }
1992 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1994 match value {
1995 "OVER_WINDOW_CACHE_POLICY_UNSPECIFIED" => Some(Self::Unspecified),
1996 "OVER_WINDOW_CACHE_POLICY_FULL" => Some(Self::Full),
1997 "OVER_WINDOW_CACHE_POLICY_RECENT" => Some(Self::Recent),
1998 "OVER_WINDOW_CACHE_POLICY_RECENT_FIRST_N" => Some(Self::RecentFirstN),
1999 "OVER_WINDOW_CACHE_POLICY_RECENT_LAST_N" => Some(Self::RecentLastN),
2000 _ => None,
2001 }
2002 }
2003}
2004#[derive(prost_helpers::AnyPB)]
2005#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2006#[repr(i32)]
2007pub enum DispatcherType {
2008 Unspecified = 0,
2009 Hash = 1,
2011 Broadcast = 2,
2016 Simple = 3,
2018 NoShuffle = 4,
2022}
2023impl DispatcherType {
2024 pub fn as_str_name(&self) -> &'static str {
2029 match self {
2030 Self::Unspecified => "DISPATCHER_TYPE_UNSPECIFIED",
2031 Self::Hash => "DISPATCHER_TYPE_HASH",
2032 Self::Broadcast => "DISPATCHER_TYPE_BROADCAST",
2033 Self::Simple => "DISPATCHER_TYPE_SIMPLE",
2034 Self::NoShuffle => "DISPATCHER_TYPE_NO_SHUFFLE",
2035 }
2036 }
2037 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2039 match value {
2040 "DISPATCHER_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
2041 "DISPATCHER_TYPE_HASH" => Some(Self::Hash),
2042 "DISPATCHER_TYPE_BROADCAST" => Some(Self::Broadcast),
2043 "DISPATCHER_TYPE_SIMPLE" => Some(Self::Simple),
2044 "DISPATCHER_TYPE_NO_SHUFFLE" => Some(Self::NoShuffle),
2045 _ => None,
2046 }
2047 }
2048}