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")]
676 pub table: ::core::option::Option<super::catalog::Table>,
677 #[prost(message, optional, tag = "5")]
686 pub staging_table: ::core::option::Option<super::catalog::Table>,
687 #[prost(message, optional, tag = "6")]
700 pub refresh_progress_table: ::core::option::Option<super::catalog::Table>,
701}
702#[derive(prost_helpers::AnyPB)]
703#[derive(Clone, PartialEq, ::prost::Message)]
704pub struct AggCallState {
705 #[prost(oneof = "agg_call_state::Inner", tags = "1, 3")]
706 pub inner: ::core::option::Option<agg_call_state::Inner>,
707}
708pub mod agg_call_state {
710 #[derive(prost_helpers::AnyPB)]
712 #[derive(Clone, Copy, PartialEq, ::prost::Message)]
713 pub struct ValueState {}
714 #[derive(prost_helpers::AnyPB)]
716 #[derive(Clone, PartialEq, ::prost::Message)]
717 pub struct MaterializedInputState {
718 #[prost(message, optional, tag = "1")]
719 pub table: ::core::option::Option<super::super::catalog::Table>,
720 #[prost(uint32, repeated, tag = "2")]
722 pub included_upstream_indices: ::prost::alloc::vec::Vec<u32>,
723 #[prost(uint32, repeated, tag = "3")]
724 pub table_value_indices: ::prost::alloc::vec::Vec<u32>,
725 #[prost(message, repeated, tag = "4")]
726 pub order_columns: ::prost::alloc::vec::Vec<super::super::common::ColumnOrder>,
727 }
728 #[derive(prost_helpers::AnyPB)]
729 #[derive(Clone, PartialEq, ::prost::Oneof)]
730 pub enum Inner {
731 #[prost(message, tag = "1")]
732 ValueState(ValueState),
733 #[prost(message, tag = "3")]
734 MaterializedInputState(MaterializedInputState),
735 }
736}
737#[derive(prost_helpers::AnyPB)]
738#[derive(Clone, PartialEq, ::prost::Message)]
739pub struct SimpleAggNode {
740 #[prost(message, repeated, tag = "1")]
741 pub agg_calls: ::prost::alloc::vec::Vec<super::expr::AggCall>,
742 #[prost(message, repeated, tag = "3")]
743 pub agg_call_states: ::prost::alloc::vec::Vec<AggCallState>,
744 #[prost(message, optional, tag = "4")]
745 pub intermediate_state_table: ::core::option::Option<super::catalog::Table>,
746 #[prost(bool, tag = "5")]
749 pub is_append_only: bool,
750 #[prost(map = "uint32, message", tag = "6")]
751 pub distinct_dedup_tables: ::std::collections::HashMap<u32, super::catalog::Table>,
752 #[prost(uint32, tag = "7")]
753 pub row_count_index: u32,
754 #[prost(enumeration = "AggNodeVersion", tag = "8")]
755 pub version: i32,
756 #[prost(bool, tag = "9")]
759 pub must_output_per_barrier: bool,
760}
761#[derive(prost_helpers::AnyPB)]
762#[derive(Clone, PartialEq, ::prost::Message)]
763pub struct HashAggNode {
764 #[prost(uint32, repeated, tag = "1")]
765 pub group_key: ::prost::alloc::vec::Vec<u32>,
766 #[prost(message, repeated, tag = "2")]
767 pub agg_calls: ::prost::alloc::vec::Vec<super::expr::AggCall>,
768 #[prost(message, repeated, tag = "3")]
769 pub agg_call_states: ::prost::alloc::vec::Vec<AggCallState>,
770 #[prost(message, optional, tag = "4")]
771 pub intermediate_state_table: ::core::option::Option<super::catalog::Table>,
772 #[prost(bool, tag = "5")]
775 pub is_append_only: bool,
776 #[prost(map = "uint32, message", tag = "6")]
777 pub distinct_dedup_tables: ::std::collections::HashMap<u32, super::catalog::Table>,
778 #[prost(uint32, tag = "7")]
779 pub row_count_index: u32,
780 #[prost(bool, tag = "8")]
781 pub emit_on_window_close: bool,
782 #[prost(enumeration = "AggNodeVersion", tag = "9")]
783 pub version: i32,
784}
785#[derive(prost_helpers::AnyPB)]
786#[derive(Clone, PartialEq, ::prost::Message)]
787pub struct TopNNode {
788 #[prost(uint64, tag = "1")]
790 pub limit: u64,
791 #[prost(uint64, tag = "2")]
792 pub offset: u64,
793 #[prost(message, optional, tag = "3")]
794 pub table: ::core::option::Option<super::catalog::Table>,
795 #[prost(message, repeated, tag = "4")]
796 pub order_by: ::prost::alloc::vec::Vec<super::common::ColumnOrder>,
797 #[prost(bool, tag = "5")]
798 pub with_ties: bool,
799}
800#[derive(prost_helpers::AnyPB)]
801#[derive(Clone, PartialEq, ::prost::Message)]
802pub struct GroupTopNNode {
803 #[prost(uint64, tag = "1")]
805 pub limit: u64,
806 #[prost(uint64, tag = "2")]
807 pub offset: u64,
808 #[prost(uint32, repeated, tag = "3")]
809 pub group_key: ::prost::alloc::vec::Vec<u32>,
810 #[prost(message, optional, tag = "4")]
811 pub table: ::core::option::Option<super::catalog::Table>,
812 #[prost(message, repeated, tag = "5")]
813 pub order_by: ::prost::alloc::vec::Vec<super::common::ColumnOrder>,
814 #[prost(bool, tag = "6")]
815 pub with_ties: bool,
816}
817#[derive(prost_helpers::AnyPB)]
818#[derive(Clone, PartialEq, ::prost::Message)]
819pub struct DeltaExpression {
820 #[prost(enumeration = "super::expr::expr_node::Type", tag = "1")]
821 pub delta_type: i32,
822 #[prost(message, optional, tag = "2")]
823 pub delta: ::core::option::Option<super::expr::ExprNode>,
824}
825#[derive(prost_helpers::AnyPB)]
826#[derive(Clone, PartialEq, ::prost::Message)]
827pub struct InequalityPair {
828 #[prost(uint32, tag = "1")]
830 pub key_required_larger: u32,
831 #[prost(uint32, tag = "2")]
833 pub key_required_smaller: u32,
834 #[prost(bool, tag = "3")]
836 pub clean_state: bool,
837 #[prost(message, optional, tag = "4")]
839 pub delta_expression: ::core::option::Option<DeltaExpression>,
840}
841#[derive(prost_helpers::AnyPB)]
842#[derive(Clone, PartialEq, ::prost::Message)]
843pub struct HashJoinNode {
844 #[prost(enumeration = "super::plan_common::JoinType", tag = "1")]
845 pub join_type: i32,
846 #[prost(int32, repeated, tag = "2")]
847 pub left_key: ::prost::alloc::vec::Vec<i32>,
848 #[prost(int32, repeated, tag = "3")]
849 pub right_key: ::prost::alloc::vec::Vec<i32>,
850 #[prost(message, optional, tag = "4")]
851 pub condition: ::core::option::Option<super::expr::ExprNode>,
852 #[prost(message, repeated, tag = "5")]
853 pub inequality_pairs: ::prost::alloc::vec::Vec<InequalityPair>,
854 #[prost(message, optional, tag = "6")]
856 pub left_table: ::core::option::Option<super::catalog::Table>,
857 #[prost(message, optional, tag = "7")]
859 pub right_table: ::core::option::Option<super::catalog::Table>,
860 #[prost(message, optional, tag = "8")]
862 pub left_degree_table: ::core::option::Option<super::catalog::Table>,
863 #[prost(message, optional, tag = "9")]
865 pub right_degree_table: ::core::option::Option<super::catalog::Table>,
866 #[prost(uint32, repeated, tag = "10")]
868 pub output_indices: ::prost::alloc::vec::Vec<u32>,
869 #[prost(uint32, repeated, tag = "11")]
874 pub left_deduped_input_pk_indices: ::prost::alloc::vec::Vec<u32>,
875 #[prost(uint32, repeated, tag = "12")]
880 pub right_deduped_input_pk_indices: ::prost::alloc::vec::Vec<u32>,
881 #[prost(bool, repeated, tag = "13")]
882 pub null_safe: ::prost::alloc::vec::Vec<bool>,
883 #[prost(bool, tag = "14")]
886 pub is_append_only: bool,
887 #[prost(enumeration = "JoinEncodingType", tag = "15")]
889 pub join_encoding_type: i32,
890}
891#[derive(prost_helpers::AnyPB)]
892#[derive(Clone, PartialEq, ::prost::Message)]
893pub struct AsOfJoinNode {
894 #[prost(enumeration = "super::plan_common::AsOfJoinType", tag = "1")]
895 pub join_type: i32,
896 #[prost(int32, repeated, tag = "2")]
897 pub left_key: ::prost::alloc::vec::Vec<i32>,
898 #[prost(int32, repeated, tag = "3")]
899 pub right_key: ::prost::alloc::vec::Vec<i32>,
900 #[prost(message, optional, tag = "4")]
902 pub left_table: ::core::option::Option<super::catalog::Table>,
903 #[prost(message, optional, tag = "5")]
905 pub right_table: ::core::option::Option<super::catalog::Table>,
906 #[prost(uint32, repeated, tag = "6")]
908 pub output_indices: ::prost::alloc::vec::Vec<u32>,
909 #[prost(uint32, repeated, tag = "7")]
913 pub left_deduped_input_pk_indices: ::prost::alloc::vec::Vec<u32>,
914 #[prost(uint32, repeated, tag = "8")]
918 pub right_deduped_input_pk_indices: ::prost::alloc::vec::Vec<u32>,
919 #[prost(bool, repeated, tag = "9")]
920 pub null_safe: ::prost::alloc::vec::Vec<bool>,
921 #[prost(message, optional, tag = "10")]
922 pub asof_desc: ::core::option::Option<super::plan_common::AsOfJoinDesc>,
923 #[prost(enumeration = "JoinEncodingType", tag = "11")]
925 pub join_encoding_type: i32,
926}
927#[derive(prost_helpers::AnyPB)]
928#[derive(Clone, PartialEq, ::prost::Message)]
929pub struct TemporalJoinNode {
930 #[prost(enumeration = "super::plan_common::JoinType", tag = "1")]
931 pub join_type: i32,
932 #[prost(int32, repeated, tag = "2")]
933 pub left_key: ::prost::alloc::vec::Vec<i32>,
934 #[prost(int32, repeated, tag = "3")]
935 pub right_key: ::prost::alloc::vec::Vec<i32>,
936 #[prost(bool, repeated, tag = "4")]
937 pub null_safe: ::prost::alloc::vec::Vec<bool>,
938 #[prost(message, optional, tag = "5")]
939 pub condition: ::core::option::Option<super::expr::ExprNode>,
940 #[prost(uint32, repeated, tag = "6")]
942 pub output_indices: ::prost::alloc::vec::Vec<u32>,
943 #[prost(message, optional, tag = "7")]
945 pub table_desc: ::core::option::Option<super::plan_common::StorageTableDesc>,
946 #[prost(uint32, repeated, tag = "8")]
948 pub table_output_indices: ::prost::alloc::vec::Vec<u32>,
949 #[prost(message, optional, tag = "9")]
951 pub memo_table: ::core::option::Option<super::catalog::Table>,
952 #[prost(bool, tag = "10")]
954 pub is_nested_loop: bool,
955}
956#[derive(prost_helpers::AnyPB)]
957#[derive(Clone, PartialEq, ::prost::Message)]
958pub struct DynamicFilterNode {
959 #[prost(uint32, tag = "1")]
960 pub left_key: u32,
961 #[prost(message, optional, tag = "2")]
963 pub condition: ::core::option::Option<super::expr::ExprNode>,
964 #[prost(message, optional, tag = "3")]
966 pub left_table: ::core::option::Option<super::catalog::Table>,
967 #[prost(message, optional, tag = "4")]
969 pub right_table: ::core::option::Option<super::catalog::Table>,
970 #[deprecated]
977 #[prost(bool, tag = "5")]
978 pub condition_always_relax: bool,
979}
980#[derive(prost_helpers::AnyPB)]
983#[derive(Clone, PartialEq, ::prost::Message)]
984pub struct DeltaIndexJoinNode {
985 #[prost(enumeration = "super::plan_common::JoinType", tag = "1")]
986 pub join_type: i32,
987 #[prost(int32, repeated, tag = "2")]
988 pub left_key: ::prost::alloc::vec::Vec<i32>,
989 #[prost(int32, repeated, tag = "3")]
990 pub right_key: ::prost::alloc::vec::Vec<i32>,
991 #[prost(message, optional, tag = "4")]
992 pub condition: ::core::option::Option<super::expr::ExprNode>,
993 #[prost(uint32, tag = "7")]
995 pub left_table_id: u32,
996 #[prost(uint32, tag = "8")]
998 pub right_table_id: u32,
999 #[prost(message, optional, tag = "9")]
1001 pub left_info: ::core::option::Option<ArrangementInfo>,
1002 #[prost(message, optional, tag = "10")]
1004 pub right_info: ::core::option::Option<ArrangementInfo>,
1005 #[prost(uint32, repeated, tag = "11")]
1007 pub output_indices: ::prost::alloc::vec::Vec<u32>,
1008}
1009#[derive(prost_helpers::AnyPB)]
1010#[derive(Clone, PartialEq, ::prost::Message)]
1011pub struct HopWindowNode {
1012 #[prost(uint32, tag = "1")]
1013 pub time_col: u32,
1014 #[prost(message, optional, tag = "2")]
1015 pub window_slide: ::core::option::Option<super::data::Interval>,
1016 #[prost(message, optional, tag = "3")]
1017 pub window_size: ::core::option::Option<super::data::Interval>,
1018 #[prost(uint32, repeated, tag = "4")]
1019 pub output_indices: ::prost::alloc::vec::Vec<u32>,
1020 #[prost(message, repeated, tag = "5")]
1021 pub window_start_exprs: ::prost::alloc::vec::Vec<super::expr::ExprNode>,
1022 #[prost(message, repeated, tag = "6")]
1023 pub window_end_exprs: ::prost::alloc::vec::Vec<super::expr::ExprNode>,
1024}
1025#[derive(prost_helpers::AnyPB)]
1026#[derive(Clone, PartialEq, ::prost::Message)]
1027pub struct MergeNode {
1028 #[deprecated]
1035 #[prost(uint32, repeated, packed = "false", tag = "1")]
1036 pub upstream_actor_id: ::prost::alloc::vec::Vec<u32>,
1037 #[prost(uint32, tag = "2")]
1038 pub upstream_fragment_id: u32,
1039 #[prost(enumeration = "DispatcherType", tag = "3")]
1042 pub upstream_dispatcher_type: i32,
1043 #[deprecated]
1045 #[prost(message, repeated, tag = "4")]
1046 pub fields: ::prost::alloc::vec::Vec<super::plan_common::Field>,
1047}
1048#[derive(prost_helpers::AnyPB)]
1051#[derive(Clone, PartialEq, ::prost::Message)]
1052pub struct ExchangeNode {
1053 #[prost(message, optional, tag = "1")]
1054 pub strategy: ::core::option::Option<DispatchStrategy>,
1055}
1056#[derive(prost_helpers::AnyPB)]
1061#[derive(Clone, PartialEq, ::prost::Message)]
1062pub struct StreamScanNode {
1063 #[prost(uint32, tag = "1")]
1064 pub table_id: u32,
1065 #[prost(int32, repeated, tag = "2")]
1069 pub upstream_column_ids: ::prost::alloc::vec::Vec<i32>,
1070 #[prost(uint32, repeated, tag = "3")]
1074 pub output_indices: ::prost::alloc::vec::Vec<u32>,
1075 #[prost(enumeration = "StreamScanType", tag = "4")]
1080 pub stream_scan_type: i32,
1081 #[prost(message, optional, tag = "5")]
1083 pub state_table: ::core::option::Option<super::catalog::Table>,
1084 #[prost(message, optional, tag = "7")]
1087 pub table_desc: ::core::option::Option<super::plan_common::StorageTableDesc>,
1088 #[prost(uint32, optional, tag = "8")]
1090 pub rate_limit: ::core::option::Option<u32>,
1091 #[deprecated]
1093 #[prost(uint32, tag = "9")]
1094 pub snapshot_read_barrier_interval: u32,
1095 #[prost(message, optional, tag = "10")]
1098 pub arrangement_table: ::core::option::Option<super::catalog::Table>,
1099 #[prost(uint64, optional, tag = "11")]
1100 pub snapshot_backfill_epoch: ::core::option::Option<u64>,
1101}
1102#[derive(prost_helpers::AnyPB)]
1104#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1105pub struct StreamCdcScanOptions {
1106 #[prost(bool, tag = "1")]
1108 pub disable_backfill: bool,
1109 #[prost(uint32, tag = "2")]
1110 pub snapshot_barrier_interval: u32,
1111 #[prost(uint32, tag = "3")]
1112 pub snapshot_batch_size: u32,
1113 #[prost(uint32, tag = "4")]
1114 pub backfill_parallelism: u32,
1115 #[prost(uint64, tag = "5")]
1116 pub backfill_num_rows_per_split: u64,
1117 #[prost(bool, tag = "6")]
1118 pub backfill_as_even_splits: bool,
1119 #[prost(uint32, tag = "7")]
1120 pub backfill_split_pk_column_index: u32,
1121}
1122#[derive(prost_helpers::AnyPB)]
1123#[derive(Clone, PartialEq, ::prost::Message)]
1124pub struct StreamCdcScanNode {
1125 #[prost(uint32, tag = "1")]
1126 pub table_id: u32,
1127 #[prost(int32, repeated, tag = "2")]
1130 pub upstream_column_ids: ::prost::alloc::vec::Vec<i32>,
1131 #[prost(uint32, repeated, tag = "3")]
1133 pub output_indices: ::prost::alloc::vec::Vec<u32>,
1134 #[prost(message, optional, tag = "4")]
1136 pub state_table: ::core::option::Option<super::catalog::Table>,
1137 #[prost(message, optional, tag = "5")]
1139 pub cdc_table_desc: ::core::option::Option<super::plan_common::ExternalTableDesc>,
1140 #[prost(uint32, optional, tag = "6")]
1142 pub rate_limit: ::core::option::Option<u32>,
1143 #[prost(bool, tag = "7")]
1146 pub disable_backfill: bool,
1147 #[prost(message, optional, tag = "8")]
1148 pub options: ::core::option::Option<StreamCdcScanOptions>,
1149}
1150#[derive(prost_helpers::AnyPB)]
1154#[derive(Clone, PartialEq, ::prost::Message)]
1155pub struct BatchPlanNode {
1156 #[prost(message, optional, tag = "1")]
1157 pub table_desc: ::core::option::Option<super::plan_common::StorageTableDesc>,
1158 #[prost(int32, repeated, tag = "2")]
1159 pub column_ids: ::prost::alloc::vec::Vec<i32>,
1160}
1161#[derive(prost_helpers::AnyPB)]
1162#[derive(Clone, PartialEq, ::prost::Message)]
1163pub struct ArrangementInfo {
1164 #[prost(message, repeated, tag = "1")]
1167 pub arrange_key_orders: ::prost::alloc::vec::Vec<super::common::ColumnOrder>,
1168 #[prost(message, repeated, tag = "2")]
1170 pub column_descs: ::prost::alloc::vec::Vec<super::plan_common::ColumnDesc>,
1171 #[prost(message, optional, tag = "4")]
1173 pub table_desc: ::core::option::Option<super::plan_common::StorageTableDesc>,
1174 #[prost(uint32, repeated, tag = "5")]
1176 pub output_col_idx: ::prost::alloc::vec::Vec<u32>,
1177}
1178#[derive(prost_helpers::AnyPB)]
1181#[derive(Clone, PartialEq, ::prost::Message)]
1182pub struct ArrangeNode {
1183 #[prost(message, optional, tag = "1")]
1185 pub table_info: ::core::option::Option<ArrangementInfo>,
1186 #[prost(uint32, repeated, tag = "2")]
1188 pub distribution_key: ::prost::alloc::vec::Vec<u32>,
1189 #[prost(message, optional, tag = "3")]
1191 pub table: ::core::option::Option<super::catalog::Table>,
1192}
1193#[derive(prost_helpers::AnyPB)]
1195#[derive(Clone, PartialEq, ::prost::Message)]
1196pub struct LookupNode {
1197 #[prost(int32, repeated, tag = "1")]
1199 pub arrange_key: ::prost::alloc::vec::Vec<i32>,
1200 #[prost(int32, repeated, tag = "2")]
1202 pub stream_key: ::prost::alloc::vec::Vec<i32>,
1203 #[prost(bool, tag = "3")]
1205 pub use_current_epoch: bool,
1206 #[prost(int32, repeated, tag = "4")]
1210 pub column_mapping: ::prost::alloc::vec::Vec<i32>,
1211 #[prost(message, optional, tag = "7")]
1213 pub arrangement_table_info: ::core::option::Option<ArrangementInfo>,
1214 #[prost(oneof = "lookup_node::ArrangementTableId", tags = "5, 6")]
1215 pub arrangement_table_id: ::core::option::Option<lookup_node::ArrangementTableId>,
1216}
1217pub mod lookup_node {
1219 #[derive(prost_helpers::AnyPB)]
1220 #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
1221 pub enum ArrangementTableId {
1222 #[prost(uint32, tag = "5")]
1224 TableId(u32),
1225 #[prost(uint32, tag = "6")]
1227 IndexId(u32),
1228 }
1229}
1230#[derive(prost_helpers::AnyPB)]
1232#[derive(Clone, PartialEq, ::prost::Message)]
1233pub struct WatermarkFilterNode {
1234 #[prost(message, repeated, tag = "1")]
1236 pub watermark_descs: ::prost::alloc::vec::Vec<super::catalog::WatermarkDesc>,
1237 #[prost(message, repeated, tag = "2")]
1239 pub tables: ::prost::alloc::vec::Vec<super::catalog::Table>,
1240}
1241#[derive(prost_helpers::AnyPB)]
1243#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1244pub struct UnionNode {}
1245#[derive(prost_helpers::AnyPB)]
1247#[derive(Clone, PartialEq, ::prost::Message)]
1248pub struct LookupUnionNode {
1249 #[prost(uint32, repeated, tag = "1")]
1250 pub order: ::prost::alloc::vec::Vec<u32>,
1251}
1252#[derive(prost_helpers::AnyPB)]
1253#[derive(Clone, PartialEq, ::prost::Message)]
1254pub struct ExpandNode {
1255 #[prost(message, repeated, tag = "1")]
1256 pub column_subsets: ::prost::alloc::vec::Vec<expand_node::Subset>,
1257}
1258pub mod expand_node {
1260 #[derive(prost_helpers::AnyPB)]
1261 #[derive(Clone, PartialEq, ::prost::Message)]
1262 pub struct Subset {
1263 #[prost(uint32, repeated, tag = "1")]
1264 pub column_indices: ::prost::alloc::vec::Vec<u32>,
1265 }
1266}
1267#[derive(prost_helpers::AnyPB)]
1268#[derive(Clone, PartialEq, ::prost::Message)]
1269pub struct ProjectSetNode {
1270 #[prost(message, repeated, tag = "1")]
1271 pub select_list: ::prost::alloc::vec::Vec<super::expr::ProjectSetSelectItem>,
1272 #[prost(uint32, repeated, tag = "2")]
1276 pub watermark_input_cols: ::prost::alloc::vec::Vec<u32>,
1277 #[prost(uint32, repeated, tag = "3")]
1278 pub watermark_expr_indices: ::prost::alloc::vec::Vec<u32>,
1279 #[prost(uint32, repeated, tag = "4")]
1280 pub nondecreasing_exprs: ::prost::alloc::vec::Vec<u32>,
1281}
1282#[derive(prost_helpers::AnyPB)]
1284#[derive(Clone, PartialEq, ::prost::Message)]
1285pub struct SortNode {
1286 #[prost(message, optional, tag = "1")]
1288 pub state_table: ::core::option::Option<super::catalog::Table>,
1289 #[prost(uint32, tag = "2")]
1291 pub sort_column_index: u32,
1292}
1293#[derive(prost_helpers::AnyPB)]
1295#[derive(Clone, PartialEq, ::prost::Message)]
1296pub struct DmlNode {
1297 #[prost(uint32, tag = "1")]
1299 pub table_id: u32,
1300 #[prost(uint64, tag = "3")]
1302 pub table_version_id: u64,
1303 #[prost(message, repeated, tag = "2")]
1305 pub column_descs: ::prost::alloc::vec::Vec<super::plan_common::ColumnDesc>,
1306 #[prost(uint32, optional, tag = "4")]
1307 pub rate_limit: ::core::option::Option<u32>,
1308}
1309#[derive(prost_helpers::AnyPB)]
1310#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1311pub struct RowIdGenNode {
1312 #[prost(uint64, tag = "1")]
1313 pub row_id_index: u64,
1314}
1315#[derive(prost_helpers::AnyPB)]
1316#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1317pub struct NowModeUpdateCurrent {}
1318#[derive(prost_helpers::AnyPB)]
1319#[derive(Clone, PartialEq, ::prost::Message)]
1320pub struct NowModeGenerateSeries {
1321 #[prost(message, optional, tag = "1")]
1322 pub start_timestamp: ::core::option::Option<super::data::Datum>,
1323 #[prost(message, optional, tag = "2")]
1324 pub interval: ::core::option::Option<super::data::Datum>,
1325}
1326#[derive(prost_helpers::AnyPB)]
1327#[derive(Clone, PartialEq, ::prost::Message)]
1328pub struct NowNode {
1329 #[prost(message, optional, tag = "1")]
1331 pub state_table: ::core::option::Option<super::catalog::Table>,
1332 #[prost(oneof = "now_node::Mode", tags = "101, 102")]
1333 pub mode: ::core::option::Option<now_node::Mode>,
1334}
1335pub mod now_node {
1337 #[derive(prost_helpers::AnyPB)]
1338 #[derive(Clone, PartialEq, ::prost::Oneof)]
1339 pub enum Mode {
1340 #[prost(message, tag = "101")]
1341 UpdateCurrent(super::NowModeUpdateCurrent),
1342 #[prost(message, tag = "102")]
1343 GenerateSeries(super::NowModeGenerateSeries),
1344 }
1345}
1346#[derive(prost_helpers::AnyPB)]
1347#[derive(Clone, PartialEq, ::prost::Message)]
1348pub struct ValuesNode {
1349 #[prost(message, repeated, tag = "1")]
1350 pub tuples: ::prost::alloc::vec::Vec<values_node::ExprTuple>,
1351 #[prost(message, repeated, tag = "2")]
1352 pub fields: ::prost::alloc::vec::Vec<super::plan_common::Field>,
1353}
1354pub mod values_node {
1356 #[derive(prost_helpers::AnyPB)]
1357 #[derive(Clone, PartialEq, ::prost::Message)]
1358 pub struct ExprTuple {
1359 #[prost(message, repeated, tag = "1")]
1360 pub cells: ::prost::alloc::vec::Vec<super::super::expr::ExprNode>,
1361 }
1362}
1363#[derive(prost_helpers::AnyPB)]
1364#[derive(Clone, PartialEq, ::prost::Message)]
1365pub struct DedupNode {
1366 #[prost(message, optional, tag = "1")]
1367 pub state_table: ::core::option::Option<super::catalog::Table>,
1368 #[prost(uint32, repeated, tag = "2")]
1369 pub dedup_column_indices: ::prost::alloc::vec::Vec<u32>,
1370}
1371#[derive(prost_helpers::AnyPB)]
1372#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1373pub struct NoOpNode {}
1374#[derive(prost_helpers::AnyPB)]
1375#[derive(Clone, PartialEq, ::prost::Message)]
1376pub struct EowcOverWindowNode {
1377 #[prost(message, repeated, tag = "1")]
1378 pub calls: ::prost::alloc::vec::Vec<super::expr::WindowFunction>,
1379 #[prost(uint32, repeated, tag = "2")]
1380 pub partition_by: ::prost::alloc::vec::Vec<u32>,
1381 #[prost(message, repeated, tag = "3")]
1383 pub order_by: ::prost::alloc::vec::Vec<super::common::ColumnOrder>,
1384 #[prost(message, optional, tag = "4")]
1385 pub state_table: ::core::option::Option<super::catalog::Table>,
1386}
1387#[derive(prost_helpers::AnyPB)]
1388#[derive(Clone, PartialEq, ::prost::Message)]
1389pub struct OverWindowNode {
1390 #[prost(message, repeated, tag = "1")]
1391 pub calls: ::prost::alloc::vec::Vec<super::expr::WindowFunction>,
1392 #[prost(uint32, repeated, tag = "2")]
1393 pub partition_by: ::prost::alloc::vec::Vec<u32>,
1394 #[prost(message, repeated, tag = "3")]
1395 pub order_by: ::prost::alloc::vec::Vec<super::common::ColumnOrder>,
1396 #[prost(message, optional, tag = "4")]
1397 pub state_table: ::core::option::Option<super::catalog::Table>,
1398 #[prost(enumeration = "OverWindowCachePolicy", tag = "5")]
1399 pub cache_policy: i32,
1400}
1401#[derive(prost_helpers::AnyPB)]
1402#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1403pub struct LocalApproxPercentileNode {
1404 #[prost(double, tag = "1")]
1405 pub base: f64,
1406 #[prost(uint32, tag = "2")]
1407 pub percentile_index: u32,
1408}
1409#[derive(prost_helpers::AnyPB)]
1410#[derive(Clone, PartialEq, ::prost::Message)]
1411pub struct GlobalApproxPercentileNode {
1412 #[prost(double, tag = "1")]
1413 pub base: f64,
1414 #[prost(double, tag = "2")]
1415 pub quantile: f64,
1416 #[prost(message, optional, tag = "3")]
1417 pub bucket_state_table: ::core::option::Option<super::catalog::Table>,
1418 #[prost(message, optional, tag = "4")]
1419 pub count_state_table: ::core::option::Option<super::catalog::Table>,
1420}
1421#[derive(prost_helpers::AnyPB)]
1422#[derive(Clone, PartialEq, ::prost::Message)]
1423pub struct RowMergeNode {
1424 #[prost(message, optional, tag = "1")]
1425 pub lhs_mapping: ::core::option::Option<super::catalog::ColIndexMapping>,
1426 #[prost(message, optional, tag = "2")]
1427 pub rhs_mapping: ::core::option::Option<super::catalog::ColIndexMapping>,
1428}
1429#[derive(prost_helpers::AnyPB)]
1430#[derive(Clone, PartialEq, ::prost::Message)]
1431pub struct SyncLogStoreNode {
1432 #[prost(message, optional, tag = "1")]
1433 pub log_store_table: ::core::option::Option<super::catalog::Table>,
1434 #[prost(uint32, tag = "2")]
1435 pub pause_duration_ms: u32,
1436 #[prost(uint32, tag = "3")]
1437 pub buffer_size: u32,
1438 #[prost(bool, tag = "4")]
1439 pub aligned: bool,
1440}
1441#[derive(prost_helpers::AnyPB)]
1442#[derive(Clone, PartialEq, ::prost::Message)]
1443pub struct MaterializedExprsNode {
1444 #[prost(message, repeated, tag = "1")]
1445 pub exprs: ::prost::alloc::vec::Vec<super::expr::ExprNode>,
1446 #[prost(message, optional, tag = "2")]
1447 pub state_table: ::core::option::Option<super::catalog::Table>,
1448 #[prost(uint32, optional, tag = "3")]
1449 pub state_clean_col_idx: ::core::option::Option<u32>,
1450}
1451#[derive(prost_helpers::AnyPB)]
1452#[derive(Clone, PartialEq, ::prost::Message)]
1453pub struct VectorIndexWriteNode {
1454 #[prost(message, optional, tag = "1")]
1455 pub table: ::core::option::Option<super::catalog::Table>,
1456}
1457#[derive(prost_helpers::AnyPB)]
1458#[derive(Clone, PartialEq, ::prost::Message)]
1459pub struct UpstreamSinkUnionNode {
1460 #[prost(message, repeated, tag = "1")]
1463 pub init_upstreams: ::prost::alloc::vec::Vec<UpstreamSinkInfo>,
1464}
1465#[derive(prost_helpers::AnyPB)]
1466#[derive(Clone, PartialEq, ::prost::Message)]
1467pub struct StreamNode {
1468 #[prost(uint64, tag = "1")]
1471 pub operator_id: u64,
1472 #[prost(message, repeated, tag = "3")]
1474 pub input: ::prost::alloc::vec::Vec<StreamNode>,
1475 #[prost(uint32, repeated, tag = "2")]
1476 pub stream_key: ::prost::alloc::vec::Vec<u32>,
1477 #[prost(enumeration = "stream_node::StreamKind", tag = "24")]
1478 pub stream_kind: i32,
1479 #[prost(string, tag = "18")]
1480 pub identity: ::prost::alloc::string::String,
1481 #[prost(message, repeated, tag = "19")]
1483 pub fields: ::prost::alloc::vec::Vec<super::plan_common::Field>,
1484 #[prost(
1485 oneof = "stream_node::NodeBody",
1486 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"
1487 )]
1488 pub node_body: ::core::option::Option<stream_node::NodeBody>,
1489}
1490pub mod stream_node {
1492 #[derive(prost_helpers::AnyPB)]
1495 #[derive(
1496 Clone,
1497 Copy,
1498 Debug,
1499 PartialEq,
1500 Eq,
1501 Hash,
1502 PartialOrd,
1503 Ord,
1504 ::prost::Enumeration
1505 )]
1506 #[repr(i32)]
1507 pub enum StreamKind {
1508 Retract = 0,
1510 AppendOnly = 1,
1511 Upsert = 2,
1512 }
1513 impl StreamKind {
1514 pub fn as_str_name(&self) -> &'static str {
1519 match self {
1520 Self::Retract => "STREAM_KIND_RETRACT",
1521 Self::AppendOnly => "STREAM_KIND_APPEND_ONLY",
1522 Self::Upsert => "STREAM_KIND_UPSERT",
1523 }
1524 }
1525 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1527 match value {
1528 "STREAM_KIND_RETRACT" => Some(Self::Retract),
1529 "STREAM_KIND_APPEND_ONLY" => Some(Self::AppendOnly),
1530 "STREAM_KIND_UPSERT" => Some(Self::Upsert),
1531 _ => None,
1532 }
1533 }
1534 }
1535 #[derive(prost_helpers::AnyPB)]
1536 #[derive(::enum_as_inner::EnumAsInner, ::strum::Display, ::strum::EnumDiscriminants)]
1537 #[strum_discriminants(derive(::strum::Display, Hash))]
1538 #[derive(Clone, PartialEq, ::prost::Oneof)]
1539 pub enum NodeBody {
1540 #[prost(message, tag = "100")]
1541 Source(::prost::alloc::boxed::Box<super::SourceNode>),
1542 #[prost(message, tag = "101")]
1543 Project(::prost::alloc::boxed::Box<super::ProjectNode>),
1544 #[prost(message, tag = "102")]
1545 Filter(::prost::alloc::boxed::Box<super::FilterNode>),
1546 #[prost(message, tag = "103")]
1547 Materialize(::prost::alloc::boxed::Box<super::MaterializeNode>),
1548 #[prost(message, tag = "104")]
1549 StatelessSimpleAgg(::prost::alloc::boxed::Box<super::SimpleAggNode>),
1550 #[prost(message, tag = "105")]
1551 SimpleAgg(::prost::alloc::boxed::Box<super::SimpleAggNode>),
1552 #[prost(message, tag = "106")]
1553 HashAgg(::prost::alloc::boxed::Box<super::HashAggNode>),
1554 #[prost(message, tag = "107")]
1555 AppendOnlyTopN(::prost::alloc::boxed::Box<super::TopNNode>),
1556 #[prost(message, tag = "108")]
1557 HashJoin(::prost::alloc::boxed::Box<super::HashJoinNode>),
1558 #[prost(message, tag = "109")]
1559 TopN(::prost::alloc::boxed::Box<super::TopNNode>),
1560 #[prost(message, tag = "110")]
1561 HopWindow(::prost::alloc::boxed::Box<super::HopWindowNode>),
1562 #[prost(message, tag = "111")]
1563 Merge(::prost::alloc::boxed::Box<super::MergeNode>),
1564 #[prost(message, tag = "112")]
1565 Exchange(::prost::alloc::boxed::Box<super::ExchangeNode>),
1566 #[prost(message, tag = "113")]
1567 StreamScan(::prost::alloc::boxed::Box<super::StreamScanNode>),
1568 #[prost(message, tag = "114")]
1569 BatchPlan(::prost::alloc::boxed::Box<super::BatchPlanNode>),
1570 #[prost(message, tag = "115")]
1571 Lookup(::prost::alloc::boxed::Box<super::LookupNode>),
1572 #[prost(message, tag = "116")]
1573 Arrange(::prost::alloc::boxed::Box<super::ArrangeNode>),
1574 #[prost(message, tag = "117")]
1575 LookupUnion(::prost::alloc::boxed::Box<super::LookupUnionNode>),
1576 #[prost(message, tag = "118")]
1577 Union(super::UnionNode),
1578 #[prost(message, tag = "119")]
1579 DeltaIndexJoin(::prost::alloc::boxed::Box<super::DeltaIndexJoinNode>),
1580 #[prost(message, tag = "120")]
1581 Sink(::prost::alloc::boxed::Box<super::SinkNode>),
1582 #[prost(message, tag = "121")]
1583 Expand(::prost::alloc::boxed::Box<super::ExpandNode>),
1584 #[prost(message, tag = "122")]
1585 DynamicFilter(::prost::alloc::boxed::Box<super::DynamicFilterNode>),
1586 #[prost(message, tag = "123")]
1587 ProjectSet(::prost::alloc::boxed::Box<super::ProjectSetNode>),
1588 #[prost(message, tag = "124")]
1589 GroupTopN(::prost::alloc::boxed::Box<super::GroupTopNNode>),
1590 #[prost(message, tag = "125")]
1591 Sort(::prost::alloc::boxed::Box<super::SortNode>),
1592 #[prost(message, tag = "126")]
1593 WatermarkFilter(::prost::alloc::boxed::Box<super::WatermarkFilterNode>),
1594 #[prost(message, tag = "127")]
1595 Dml(::prost::alloc::boxed::Box<super::DmlNode>),
1596 #[prost(message, tag = "128")]
1597 RowIdGen(::prost::alloc::boxed::Box<super::RowIdGenNode>),
1598 #[prost(message, tag = "129")]
1599 Now(::prost::alloc::boxed::Box<super::NowNode>),
1600 #[prost(message, tag = "130")]
1601 AppendOnlyGroupTopN(::prost::alloc::boxed::Box<super::GroupTopNNode>),
1602 #[prost(message, tag = "131")]
1603 TemporalJoin(::prost::alloc::boxed::Box<super::TemporalJoinNode>),
1604 #[prost(message, tag = "132")]
1605 BarrierRecv(::prost::alloc::boxed::Box<super::BarrierRecvNode>),
1606 #[prost(message, tag = "133")]
1607 Values(::prost::alloc::boxed::Box<super::ValuesNode>),
1608 #[prost(message, tag = "134")]
1609 AppendOnlyDedup(::prost::alloc::boxed::Box<super::DedupNode>),
1610 #[prost(message, tag = "135")]
1611 NoOp(super::NoOpNode),
1612 #[prost(message, tag = "136")]
1613 EowcOverWindow(::prost::alloc::boxed::Box<super::EowcOverWindowNode>),
1614 #[prost(message, tag = "137")]
1615 OverWindow(::prost::alloc::boxed::Box<super::OverWindowNode>),
1616 #[prost(message, tag = "138")]
1617 StreamFsFetch(::prost::alloc::boxed::Box<super::StreamFsFetchNode>),
1618 #[prost(message, tag = "139")]
1619 StreamCdcScan(::prost::alloc::boxed::Box<super::StreamCdcScanNode>),
1620 #[prost(message, tag = "140")]
1621 CdcFilter(::prost::alloc::boxed::Box<super::CdcFilterNode>),
1622 #[prost(message, tag = "142")]
1623 SourceBackfill(::prost::alloc::boxed::Box<super::SourceBackfillNode>),
1624 #[prost(message, tag = "143")]
1625 Changelog(::prost::alloc::boxed::Box<super::ChangeLogNode>),
1626 #[prost(message, tag = "144")]
1627 LocalApproxPercentile(
1628 ::prost::alloc::boxed::Box<super::LocalApproxPercentileNode>,
1629 ),
1630 #[prost(message, tag = "145")]
1631 GlobalApproxPercentile(
1632 ::prost::alloc::boxed::Box<super::GlobalApproxPercentileNode>,
1633 ),
1634 #[prost(message, tag = "146")]
1635 RowMerge(::prost::alloc::boxed::Box<super::RowMergeNode>),
1636 #[prost(message, tag = "147")]
1637 AsOfJoin(::prost::alloc::boxed::Box<super::AsOfJoinNode>),
1638 #[prost(message, tag = "148")]
1639 SyncLogStore(::prost::alloc::boxed::Box<super::SyncLogStoreNode>),
1640 #[prost(message, tag = "149")]
1641 MaterializedExprs(::prost::alloc::boxed::Box<super::MaterializedExprsNode>),
1642 #[prost(message, tag = "150")]
1643 VectorIndexWrite(::prost::alloc::boxed::Box<super::VectorIndexWriteNode>),
1644 #[prost(message, tag = "151")]
1645 UpstreamSinkUnion(::prost::alloc::boxed::Box<super::UpstreamSinkUnionNode>),
1646 }
1647}
1648#[derive(prost_helpers::AnyPB)]
1661#[derive(Clone, PartialEq, ::prost::Message)]
1662pub struct DispatchOutputMapping {
1663 #[prost(uint32, repeated, tag = "1")]
1665 pub indices: ::prost::alloc::vec::Vec<u32>,
1666 #[prost(message, repeated, tag = "2")]
1671 pub types: ::prost::alloc::vec::Vec<dispatch_output_mapping::TypePair>,
1672}
1673pub mod dispatch_output_mapping {
1675 #[derive(prost_helpers::AnyPB)]
1676 #[derive(Clone, PartialEq, ::prost::Message)]
1677 pub struct TypePair {
1678 #[prost(message, optional, tag = "1")]
1679 pub upstream: ::core::option::Option<super::super::data::DataType>,
1680 #[prost(message, optional, tag = "2")]
1681 pub downstream: ::core::option::Option<super::super::data::DataType>,
1682 }
1683}
1684#[derive(prost_helpers::AnyPB)]
1687#[derive(Clone, PartialEq, ::prost::Message)]
1688pub struct DispatchStrategy {
1689 #[prost(enumeration = "DispatcherType", tag = "1")]
1690 pub r#type: i32,
1691 #[prost(uint32, repeated, tag = "2")]
1692 pub dist_key_indices: ::prost::alloc::vec::Vec<u32>,
1693 #[prost(message, optional, tag = "3")]
1694 pub output_mapping: ::core::option::Option<DispatchOutputMapping>,
1695}
1696#[derive(prost_helpers::AnyPB)]
1699#[derive(Clone, PartialEq, ::prost::Message)]
1700pub struct Dispatcher {
1701 #[prost(enumeration = "DispatcherType", tag = "1")]
1702 pub r#type: i32,
1703 #[prost(uint32, repeated, tag = "2")]
1706 pub dist_key_indices: ::prost::alloc::vec::Vec<u32>,
1707 #[prost(message, optional, tag = "6")]
1709 pub output_mapping: ::core::option::Option<DispatchOutputMapping>,
1710 #[prost(message, optional, tag = "3")]
1713 pub hash_mapping: ::core::option::Option<ActorMapping>,
1714 #[prost(uint64, tag = "4")]
1717 pub dispatcher_id: u64,
1718 #[prost(uint32, repeated, tag = "5")]
1720 pub downstream_actor_id: ::prost::alloc::vec::Vec<u32>,
1721}
1722#[derive(prost_helpers::AnyPB)]
1724#[derive(Clone, PartialEq, ::prost::Message)]
1725pub struct StreamActor {
1726 #[prost(uint32, tag = "1")]
1727 pub actor_id: u32,
1728 #[prost(uint32, tag = "2")]
1729 pub fragment_id: u32,
1730 #[prost(message, repeated, tag = "4")]
1731 pub dispatcher: ::prost::alloc::vec::Vec<Dispatcher>,
1732 #[prost(message, optional, tag = "8")]
1735 pub vnode_bitmap: ::core::option::Option<super::common::Buffer>,
1736 #[prost(string, tag = "9")]
1738 pub mview_definition: ::prost::alloc::string::String,
1739 #[prost(message, optional, tag = "10")]
1741 pub expr_context: ::core::option::Option<super::plan_common::ExprContext>,
1742}
1743#[derive(prost_helpers::AnyPB)]
1745#[derive(Clone, PartialEq, ::prost::Message)]
1746pub struct StreamContext {
1747 #[prost(string, tag = "1")]
1749 pub timezone: ::prost::alloc::string::String,
1750}
1751#[derive(prost_helpers::AnyPB)]
1752#[derive(Clone, PartialEq, ::prost::Message)]
1753pub struct BackfillOrder {
1754 #[prost(map = "uint32, message", tag = "1")]
1755 pub order: ::std::collections::HashMap<u32, super::common::Uint32Vector>,
1756}
1757#[derive(prost_helpers::AnyPB)]
1762#[derive(Clone, PartialEq, ::prost::Message)]
1763pub struct StreamFragmentGraph {
1764 #[prost(map = "uint32, message", tag = "1")]
1766 pub fragments: ::std::collections::HashMap<
1767 u32,
1768 stream_fragment_graph::StreamFragment,
1769 >,
1770 #[prost(message, repeated, tag = "2")]
1772 pub edges: ::prost::alloc::vec::Vec<stream_fragment_graph::StreamFragmentEdge>,
1773 #[prost(uint32, repeated, tag = "3")]
1774 pub dependent_table_ids: ::prost::alloc::vec::Vec<u32>,
1775 #[prost(uint32, tag = "4")]
1776 pub table_ids_cnt: u32,
1777 #[prost(message, optional, tag = "5")]
1778 pub ctx: ::core::option::Option<StreamContext>,
1779 #[prost(message, optional, tag = "6")]
1781 pub parallelism: ::core::option::Option<stream_fragment_graph::Parallelism>,
1782 #[prost(uint32, tag = "7")]
1792 pub max_parallelism: u32,
1793 #[prost(message, optional, tag = "8")]
1795 pub backfill_order: ::core::option::Option<BackfillOrder>,
1796}
1797pub mod stream_fragment_graph {
1799 #[derive(prost_helpers::AnyPB)]
1800 #[derive(Clone, PartialEq, ::prost::Message)]
1801 pub struct StreamFragment {
1802 #[prost(uint32, tag = "1")]
1804 pub fragment_id: u32,
1805 #[prost(message, optional, tag = "2")]
1807 pub node: ::core::option::Option<super::StreamNode>,
1808 #[prost(uint32, tag = "3")]
1810 pub fragment_type_mask: u32,
1811 #[prost(bool, tag = "4")]
1815 pub requires_singleton: bool,
1816 #[prost(uint32, tag = "5")]
1818 pub table_ids_cnt: u32,
1819 #[prost(uint32, repeated, tag = "6")]
1821 pub upstream_table_ids: ::prost::alloc::vec::Vec<u32>,
1822 }
1823 #[derive(prost_helpers::AnyPB)]
1824 #[derive(Clone, PartialEq, ::prost::Message)]
1825 pub struct StreamFragmentEdge {
1826 #[prost(message, optional, tag = "1")]
1828 pub dispatch_strategy: ::core::option::Option<super::DispatchStrategy>,
1829 #[prost(uint64, tag = "3")]
1833 pub link_id: u64,
1834 #[prost(uint32, tag = "4")]
1835 pub upstream_id: u32,
1836 #[prost(uint32, tag = "5")]
1837 pub downstream_id: u32,
1838 }
1839 #[derive(prost_helpers::AnyPB)]
1840 #[derive(Clone, Copy, PartialEq, ::prost::Message)]
1841 pub struct Parallelism {
1842 #[prost(uint64, tag = "1")]
1843 pub parallelism: u64,
1844 }
1845}
1846#[derive(prost_helpers::AnyPB)]
1847#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1848#[repr(i32)]
1849pub enum SinkLogStoreType {
1850 Unspecified = 0,
1852 KvLogStore = 1,
1853 InMemoryLogStore = 2,
1854}
1855impl SinkLogStoreType {
1856 pub fn as_str_name(&self) -> &'static str {
1861 match self {
1862 Self::Unspecified => "SINK_LOG_STORE_TYPE_UNSPECIFIED",
1863 Self::KvLogStore => "SINK_LOG_STORE_TYPE_KV_LOG_STORE",
1864 Self::InMemoryLogStore => "SINK_LOG_STORE_TYPE_IN_MEMORY_LOG_STORE",
1865 }
1866 }
1867 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1869 match value {
1870 "SINK_LOG_STORE_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
1871 "SINK_LOG_STORE_TYPE_KV_LOG_STORE" => Some(Self::KvLogStore),
1872 "SINK_LOG_STORE_TYPE_IN_MEMORY_LOG_STORE" => Some(Self::InMemoryLogStore),
1873 _ => None,
1874 }
1875 }
1876}
1877#[derive(prost_helpers::AnyPB)]
1878#[derive(prost_helpers::Version)]
1879#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1880#[repr(i32)]
1881pub enum AggNodeVersion {
1882 Unspecified = 0,
1883 Issue12140 = 1,
1885 Issue13465 = 2,
1887}
1888impl AggNodeVersion {
1889 pub fn as_str_name(&self) -> &'static str {
1894 match self {
1895 Self::Unspecified => "AGG_NODE_VERSION_UNSPECIFIED",
1896 Self::Issue12140 => "AGG_NODE_VERSION_ISSUE_12140",
1897 Self::Issue13465 => "AGG_NODE_VERSION_ISSUE_13465",
1898 }
1899 }
1900 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1902 match value {
1903 "AGG_NODE_VERSION_UNSPECIFIED" => Some(Self::Unspecified),
1904 "AGG_NODE_VERSION_ISSUE_12140" => Some(Self::Issue12140),
1905 "AGG_NODE_VERSION_ISSUE_13465" => Some(Self::Issue13465),
1906 _ => None,
1907 }
1908 }
1909}
1910#[derive(prost_helpers::AnyPB)]
1911#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1912#[repr(i32)]
1913pub enum JoinEncodingType {
1914 Unspecified = 0,
1915 MemoryOptimized = 1,
1916 CpuOptimized = 2,
1917}
1918impl JoinEncodingType {
1919 pub fn as_str_name(&self) -> &'static str {
1924 match self {
1925 Self::Unspecified => "UNSPECIFIED",
1926 Self::MemoryOptimized => "MEMORY_OPTIMIZED",
1927 Self::CpuOptimized => "CPU_OPTIMIZED",
1928 }
1929 }
1930 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1932 match value {
1933 "UNSPECIFIED" => Some(Self::Unspecified),
1934 "MEMORY_OPTIMIZED" => Some(Self::MemoryOptimized),
1935 "CPU_OPTIMIZED" => Some(Self::CpuOptimized),
1936 _ => None,
1937 }
1938 }
1939}
1940#[derive(prost_helpers::AnyPB)]
1942#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1943#[repr(i32)]
1944pub enum StreamScanType {
1945 Unspecified = 0,
1946 Chain = 1,
1948 Rearrange = 2,
1950 Backfill = 3,
1952 UpstreamOnly = 4,
1954 ArrangementBackfill = 5,
1956 SnapshotBackfill = 6,
1958 CrossDbSnapshotBackfill = 7,
1960}
1961impl StreamScanType {
1962 pub fn as_str_name(&self) -> &'static str {
1967 match self {
1968 Self::Unspecified => "STREAM_SCAN_TYPE_UNSPECIFIED",
1969 Self::Chain => "STREAM_SCAN_TYPE_CHAIN",
1970 Self::Rearrange => "STREAM_SCAN_TYPE_REARRANGE",
1971 Self::Backfill => "STREAM_SCAN_TYPE_BACKFILL",
1972 Self::UpstreamOnly => "STREAM_SCAN_TYPE_UPSTREAM_ONLY",
1973 Self::ArrangementBackfill => "STREAM_SCAN_TYPE_ARRANGEMENT_BACKFILL",
1974 Self::SnapshotBackfill => "STREAM_SCAN_TYPE_SNAPSHOT_BACKFILL",
1975 Self::CrossDbSnapshotBackfill => {
1976 "STREAM_SCAN_TYPE_CROSS_DB_SNAPSHOT_BACKFILL"
1977 }
1978 }
1979 }
1980 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1982 match value {
1983 "STREAM_SCAN_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
1984 "STREAM_SCAN_TYPE_CHAIN" => Some(Self::Chain),
1985 "STREAM_SCAN_TYPE_REARRANGE" => Some(Self::Rearrange),
1986 "STREAM_SCAN_TYPE_BACKFILL" => Some(Self::Backfill),
1987 "STREAM_SCAN_TYPE_UPSTREAM_ONLY" => Some(Self::UpstreamOnly),
1988 "STREAM_SCAN_TYPE_ARRANGEMENT_BACKFILL" => Some(Self::ArrangementBackfill),
1989 "STREAM_SCAN_TYPE_SNAPSHOT_BACKFILL" => Some(Self::SnapshotBackfill),
1990 "STREAM_SCAN_TYPE_CROSS_DB_SNAPSHOT_BACKFILL" => {
1991 Some(Self::CrossDbSnapshotBackfill)
1992 }
1993 _ => None,
1994 }
1995 }
1996}
1997#[derive(prost_helpers::AnyPB)]
1998#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1999#[repr(i32)]
2000pub enum OverWindowCachePolicy {
2001 Unspecified = 0,
2002 Full = 1,
2003 Recent = 2,
2004 RecentFirstN = 3,
2005 RecentLastN = 4,
2006}
2007impl OverWindowCachePolicy {
2008 pub fn as_str_name(&self) -> &'static str {
2013 match self {
2014 Self::Unspecified => "OVER_WINDOW_CACHE_POLICY_UNSPECIFIED",
2015 Self::Full => "OVER_WINDOW_CACHE_POLICY_FULL",
2016 Self::Recent => "OVER_WINDOW_CACHE_POLICY_RECENT",
2017 Self::RecentFirstN => "OVER_WINDOW_CACHE_POLICY_RECENT_FIRST_N",
2018 Self::RecentLastN => "OVER_WINDOW_CACHE_POLICY_RECENT_LAST_N",
2019 }
2020 }
2021 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2023 match value {
2024 "OVER_WINDOW_CACHE_POLICY_UNSPECIFIED" => Some(Self::Unspecified),
2025 "OVER_WINDOW_CACHE_POLICY_FULL" => Some(Self::Full),
2026 "OVER_WINDOW_CACHE_POLICY_RECENT" => Some(Self::Recent),
2027 "OVER_WINDOW_CACHE_POLICY_RECENT_FIRST_N" => Some(Self::RecentFirstN),
2028 "OVER_WINDOW_CACHE_POLICY_RECENT_LAST_N" => Some(Self::RecentLastN),
2029 _ => None,
2030 }
2031 }
2032}
2033#[derive(prost_helpers::AnyPB)]
2034#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2035#[repr(i32)]
2036pub enum DispatcherType {
2037 Unspecified = 0,
2038 Hash = 1,
2040 Broadcast = 2,
2045 Simple = 3,
2047 NoShuffle = 4,
2051}
2052impl DispatcherType {
2053 pub fn as_str_name(&self) -> &'static str {
2058 match self {
2059 Self::Unspecified => "DISPATCHER_TYPE_UNSPECIFIED",
2060 Self::Hash => "DISPATCHER_TYPE_HASH",
2061 Self::Broadcast => "DISPATCHER_TYPE_BROADCAST",
2062 Self::Simple => "DISPATCHER_TYPE_SIMPLE",
2063 Self::NoShuffle => "DISPATCHER_TYPE_NO_SHUFFLE",
2064 }
2065 }
2066 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2068 match value {
2069 "DISPATCHER_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
2070 "DISPATCHER_TYPE_HASH" => Some(Self::Hash),
2071 "DISPATCHER_TYPE_BROADCAST" => Some(Self::Broadcast),
2072 "DISPATCHER_TYPE_SIMPLE" => Some(Self::Simple),
2073 "DISPATCHER_TYPE_NO_SHUFFLE" => Some(Self::NoShuffle),
2074 _ => None,
2075 }
2076 }
2077}