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 AddMutation {
11 #[prost(map = "uint32, message", tag = "1")]
13 pub actor_dispatchers: ::std::collections::HashMap<u32, Dispatchers>,
14 #[prost(uint32, repeated, tag = "3")]
16 pub added_actors: ::prost::alloc::vec::Vec<u32>,
17 #[prost(map = "uint32, message", tag = "2")]
21 pub actor_splits: ::std::collections::HashMap<u32, super::source::ConnectorSplits>,
22 #[prost(bool, tag = "4")]
25 pub pause: bool,
26 #[prost(message, repeated, tag = "5")]
27 pub subscriptions_to_add: ::prost::alloc::vec::Vec<SubscriptionUpstreamInfo>,
28 #[prost(uint32, repeated, tag = "6")]
30 pub backfill_nodes_to_pause: ::prost::alloc::vec::Vec<u32>,
31}
32#[derive(prost_helpers::AnyPB)]
33#[derive(Clone, PartialEq, ::prost::Message)]
34pub struct StopMutation {
35 #[prost(uint32, repeated, tag = "1")]
36 pub actors: ::prost::alloc::vec::Vec<u32>,
37}
38#[derive(prost_helpers::AnyPB)]
39#[derive(Clone, PartialEq, ::prost::Message)]
40pub struct UpdateMutation {
41 #[prost(message, repeated, tag = "1")]
43 pub dispatcher_update: ::prost::alloc::vec::Vec<update_mutation::DispatcherUpdate>,
44 #[prost(message, repeated, tag = "2")]
46 pub merge_update: ::prost::alloc::vec::Vec<update_mutation::MergeUpdate>,
47 #[prost(map = "uint32, message", tag = "3")]
49 pub actor_vnode_bitmap_update: ::std::collections::HashMap<
50 u32,
51 super::common::Buffer,
52 >,
53 #[prost(uint32, repeated, tag = "4")]
55 pub dropped_actors: ::prost::alloc::vec::Vec<u32>,
56 #[prost(map = "uint32, message", tag = "5")]
59 pub actor_splits: ::std::collections::HashMap<u32, super::source::ConnectorSplits>,
60 #[prost(map = "uint32, message", tag = "6")]
63 pub actor_new_dispatchers: ::std::collections::HashMap<u32, Dispatchers>,
64}
65pub mod update_mutation {
67 #[derive(prost_helpers::AnyPB)]
68 #[derive(Clone, PartialEq, ::prost::Message)]
69 pub struct DispatcherUpdate {
70 #[prost(uint32, tag = "1")]
72 pub actor_id: u32,
73 #[prost(uint64, tag = "2")]
74 pub dispatcher_id: u64,
75 #[prost(message, optional, tag = "3")]
78 pub hash_mapping: ::core::option::Option<super::ActorMapping>,
79 #[prost(uint32, repeated, tag = "4")]
81 pub added_downstream_actor_id: ::prost::alloc::vec::Vec<u32>,
82 #[prost(uint32, repeated, tag = "5")]
84 pub removed_downstream_actor_id: ::prost::alloc::vec::Vec<u32>,
85 }
86 #[derive(prost_helpers::AnyPB)]
87 #[derive(Clone, PartialEq, ::prost::Message)]
88 pub struct MergeUpdate {
89 #[prost(uint32, tag = "1")]
91 pub actor_id: u32,
92 #[prost(uint32, tag = "2")]
93 pub upstream_fragment_id: u32,
94 #[prost(uint32, optional, tag = "5")]
98 pub new_upstream_fragment_id: ::core::option::Option<u32>,
99 #[prost(message, repeated, tag = "3")]
101 pub added_upstream_actors: ::prost::alloc::vec::Vec<
102 super::super::common::ActorInfo,
103 >,
104 #[prost(uint32, repeated, tag = "4")]
107 pub removed_upstream_actor_id: ::prost::alloc::vec::Vec<u32>,
108 }
109}
110#[derive(prost_helpers::AnyPB)]
111#[derive(Clone, PartialEq, ::prost::Message)]
112pub struct SourceChangeSplitMutation {
113 #[prost(map = "uint32, message", tag = "2")]
115 pub actor_splits: ::std::collections::HashMap<u32, super::source::ConnectorSplits>,
116}
117#[derive(prost_helpers::AnyPB)]
118#[derive(Clone, Copy, PartialEq, ::prost::Message)]
119pub struct PauseMutation {}
120#[derive(prost_helpers::AnyPB)]
121#[derive(Clone, Copy, PartialEq, ::prost::Message)]
122pub struct ResumeMutation {}
123#[derive(prost_helpers::AnyPB)]
124#[derive(Clone, PartialEq, ::prost::Message)]
125pub struct ThrottleMutation {
126 #[prost(map = "uint32, message", tag = "1")]
127 pub actor_throttle: ::std::collections::HashMap<u32, throttle_mutation::RateLimit>,
128}
129pub mod throttle_mutation {
131 #[derive(prost_helpers::AnyPB)]
132 #[derive(Clone, Copy, PartialEq, ::prost::Message)]
133 pub struct RateLimit {
134 #[prost(uint32, optional, tag = "1")]
135 pub rate_limit: ::core::option::Option<u32>,
136 }
137}
138#[derive(prost_helpers::AnyPB)]
139#[derive(Clone, PartialEq, ::prost::Message)]
140pub struct CombinedMutation {
141 #[prost(message, repeated, tag = "1")]
142 pub mutations: ::prost::alloc::vec::Vec<BarrierMutation>,
143}
144#[derive(prost_helpers::AnyPB)]
145#[derive(Clone, Copy, PartialEq, ::prost::Message)]
146pub struct SubscriptionUpstreamInfo {
147 #[prost(uint32, tag = "1")]
149 pub subscriber_id: u32,
150 #[prost(uint32, tag = "2")]
151 pub upstream_mv_table_id: u32,
152}
153#[derive(prost_helpers::AnyPB)]
154#[derive(Clone, PartialEq, ::prost::Message)]
155pub struct DropSubscriptionsMutation {
156 #[prost(message, repeated, tag = "1")]
157 pub info: ::prost::alloc::vec::Vec<SubscriptionUpstreamInfo>,
158}
159#[derive(prost_helpers::AnyPB)]
160#[derive(Clone, PartialEq, ::prost::Message)]
161pub struct ConnectorPropsChangeMutation {
162 #[prost(map = "uint32, message", tag = "1")]
163 pub connector_props_infos: ::std::collections::HashMap<
164 u32,
165 connector_props_change_mutation::ConnectorPropsInfo,
166 >,
167}
168pub mod connector_props_change_mutation {
170 #[derive(prost_helpers::AnyPB)]
171 #[derive(Clone, PartialEq, ::prost::Message)]
172 pub struct ConnectorPropsInfo {
173 #[prost(map = "string, string", tag = "1")]
174 pub connector_props_info: ::std::collections::HashMap<
175 ::prost::alloc::string::String,
176 ::prost::alloc::string::String,
177 >,
178 }
179}
180#[derive(prost_helpers::AnyPB)]
181#[derive(Clone, PartialEq, ::prost::Message)]
182pub struct StartFragmentBackfillMutation {
183 #[prost(uint32, repeated, tag = "1")]
184 pub fragment_ids: ::prost::alloc::vec::Vec<u32>,
185}
186#[derive(prost_helpers::AnyPB)]
187#[derive(Clone, PartialEq, ::prost::Message)]
188pub struct BarrierMutation {
189 #[prost(
190 oneof = "barrier_mutation::Mutation",
191 tags = "3, 4, 5, 6, 7, 8, 10, 12, 13, 14, 100"
192 )]
193 pub mutation: ::core::option::Option<barrier_mutation::Mutation>,
194}
195pub mod barrier_mutation {
197 #[derive(prost_helpers::AnyPB)]
198 #[derive(Clone, PartialEq, ::prost::Oneof)]
199 pub enum Mutation {
200 #[prost(message, tag = "3")]
202 Add(super::AddMutation),
203 #[prost(message, tag = "4")]
206 Stop(super::StopMutation),
207 #[prost(message, tag = "5")]
209 Update(super::UpdateMutation),
210 #[prost(message, tag = "6")]
212 Splits(super::SourceChangeSplitMutation),
213 #[prost(message, tag = "7")]
215 Pause(super::PauseMutation),
216 #[prost(message, tag = "8")]
218 Resume(super::ResumeMutation),
219 #[prost(message, tag = "10")]
221 Throttle(super::ThrottleMutation),
222 #[prost(message, tag = "12")]
224 DropSubscriptions(super::DropSubscriptionsMutation),
225 #[prost(message, tag = "13")]
227 ConnectorPropsChange(super::ConnectorPropsChangeMutation),
228 #[prost(message, tag = "14")]
234 StartFragmentBackfill(super::StartFragmentBackfillMutation),
235 #[prost(message, tag = "100")]
238 Combined(super::CombinedMutation),
239 }
240}
241#[derive(prost_helpers::AnyPB)]
242#[derive(Clone, PartialEq, ::prost::Message)]
243pub struct Barrier {
244 #[prost(message, optional, tag = "1")]
245 pub epoch: ::core::option::Option<super::data::Epoch>,
246 #[prost(message, optional, tag = "3")]
247 pub mutation: ::core::option::Option<BarrierMutation>,
248 #[prost(map = "string, string", tag = "2")]
250 pub tracing_context: ::std::collections::HashMap<
251 ::prost::alloc::string::String,
252 ::prost::alloc::string::String,
253 >,
254 #[prost(enumeration = "barrier::BarrierKind", tag = "9")]
256 pub kind: i32,
257 #[prost(uint32, repeated, tag = "255")]
259 pub passed_actors: ::prost::alloc::vec::Vec<u32>,
260}
261pub mod barrier {
263 #[derive(prost_helpers::AnyPB)]
264 #[derive(::enum_as_inner::EnumAsInner)]
265 #[derive(
266 Clone,
267 Copy,
268 Debug,
269 PartialEq,
270 Eq,
271 Hash,
272 PartialOrd,
273 Ord,
274 ::prost::Enumeration
275 )]
276 #[repr(i32)]
277 pub enum BarrierKind {
278 Unspecified = 0,
279 Initial = 1,
282 Barrier = 2,
284 Checkpoint = 3,
286 }
287 impl BarrierKind {
288 pub fn as_str_name(&self) -> &'static str {
293 match self {
294 Self::Unspecified => "BARRIER_KIND_UNSPECIFIED",
295 Self::Initial => "BARRIER_KIND_INITIAL",
296 Self::Barrier => "BARRIER_KIND_BARRIER",
297 Self::Checkpoint => "BARRIER_KIND_CHECKPOINT",
298 }
299 }
300 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
302 match value {
303 "BARRIER_KIND_UNSPECIFIED" => Some(Self::Unspecified),
304 "BARRIER_KIND_INITIAL" => Some(Self::Initial),
305 "BARRIER_KIND_BARRIER" => Some(Self::Barrier),
306 "BARRIER_KIND_CHECKPOINT" => Some(Self::Checkpoint),
307 _ => None,
308 }
309 }
310 }
311}
312#[derive(prost_helpers::AnyPB)]
313#[derive(Clone, PartialEq, ::prost::Message)]
314pub struct Watermark {
315 #[prost(message, optional, tag = "1")]
317 pub column: ::core::option::Option<super::expr::InputRef>,
318 #[prost(message, optional, tag = "3")]
320 pub val: ::core::option::Option<super::data::Datum>,
321}
322#[derive(prost_helpers::AnyPB)]
323#[derive(Clone, PartialEq, ::prost::Message)]
324pub struct StreamMessage {
325 #[prost(oneof = "stream_message::StreamMessage", tags = "1, 2, 3")]
326 pub stream_message: ::core::option::Option<stream_message::StreamMessage>,
327}
328pub mod stream_message {
330 #[derive(prost_helpers::AnyPB)]
331 #[derive(Clone, PartialEq, ::prost::Oneof)]
332 pub enum StreamMessage {
333 #[prost(message, tag = "1")]
334 StreamChunk(super::super::data::StreamChunk),
335 #[prost(message, tag = "2")]
336 Barrier(super::Barrier),
337 #[prost(message, tag = "3")]
338 Watermark(super::Watermark),
339 }
340}
341#[derive(prost_helpers::AnyPB)]
342#[derive(Clone, PartialEq, ::prost::Message)]
343pub struct StreamMessageBatch {
344 #[prost(oneof = "stream_message_batch::StreamMessageBatch", tags = "1, 2, 3")]
345 pub stream_message_batch: ::core::option::Option<
346 stream_message_batch::StreamMessageBatch,
347 >,
348}
349pub mod stream_message_batch {
351 #[derive(prost_helpers::AnyPB)]
352 #[derive(Clone, PartialEq, ::prost::Message)]
353 pub struct BarrierBatch {
354 #[prost(message, repeated, tag = "1")]
355 pub barriers: ::prost::alloc::vec::Vec<super::Barrier>,
356 }
357 #[derive(prost_helpers::AnyPB)]
358 #[derive(Clone, PartialEq, ::prost::Oneof)]
359 pub enum StreamMessageBatch {
360 #[prost(message, tag = "1")]
361 StreamChunk(super::super::data::StreamChunk),
362 #[prost(message, tag = "2")]
363 BarrierBatch(BarrierBatch),
364 #[prost(message, tag = "3")]
365 Watermark(super::Watermark),
366 }
367}
368#[derive(prost_helpers::AnyPB)]
370#[derive(Clone, PartialEq, ::prost::Message)]
371pub struct ActorMapping {
372 #[prost(uint32, repeated, tag = "1")]
373 pub original_indices: ::prost::alloc::vec::Vec<u32>,
374 #[prost(uint32, repeated, tag = "2")]
375 pub data: ::prost::alloc::vec::Vec<u32>,
376}
377#[derive(prost_helpers::AnyPB)]
378#[derive(Clone, PartialEq, ::prost::Message)]
379pub struct StreamSource {
380 #[prost(uint32, tag = "1")]
381 pub source_id: u32,
382 #[prost(message, optional, tag = "2")]
383 pub state_table: ::core::option::Option<super::catalog::Table>,
384 #[prost(uint32, optional, tag = "3")]
385 pub row_id_index: ::core::option::Option<u32>,
386 #[prost(message, repeated, tag = "4")]
387 pub columns: ::prost::alloc::vec::Vec<super::plan_common::ColumnCatalog>,
388 #[prost(btree_map = "string, string", tag = "6")]
389 pub with_properties: ::prost::alloc::collections::BTreeMap<
390 ::prost::alloc::string::String,
391 ::prost::alloc::string::String,
392 >,
393 #[prost(message, optional, tag = "7")]
394 pub info: ::core::option::Option<super::catalog::StreamSourceInfo>,
395 #[prost(string, tag = "8")]
396 pub source_name: ::prost::alloc::string::String,
397 #[prost(uint32, optional, tag = "9")]
399 pub rate_limit: ::core::option::Option<u32>,
400 #[prost(btree_map = "string, message", tag = "10")]
401 pub secret_refs: ::prost::alloc::collections::BTreeMap<
402 ::prost::alloc::string::String,
403 super::secret::SecretRef,
404 >,
405}
406#[derive(prost_helpers::AnyPB)]
408#[derive(Clone, PartialEq, ::prost::Message)]
409pub struct StreamFsFetch {
410 #[prost(uint32, tag = "1")]
411 pub source_id: u32,
412 #[prost(message, optional, tag = "2")]
413 pub state_table: ::core::option::Option<super::catalog::Table>,
414 #[prost(uint32, optional, tag = "3")]
415 pub row_id_index: ::core::option::Option<u32>,
416 #[prost(message, repeated, tag = "4")]
417 pub columns: ::prost::alloc::vec::Vec<super::plan_common::ColumnCatalog>,
418 #[prost(btree_map = "string, string", tag = "6")]
419 pub with_properties: ::prost::alloc::collections::BTreeMap<
420 ::prost::alloc::string::String,
421 ::prost::alloc::string::String,
422 >,
423 #[prost(message, optional, tag = "7")]
424 pub info: ::core::option::Option<super::catalog::StreamSourceInfo>,
425 #[prost(string, tag = "8")]
426 pub source_name: ::prost::alloc::string::String,
427 #[prost(uint32, optional, tag = "9")]
429 pub rate_limit: ::core::option::Option<u32>,
430 #[prost(btree_map = "string, message", tag = "10")]
431 pub secret_refs: ::prost::alloc::collections::BTreeMap<
432 ::prost::alloc::string::String,
433 super::secret::SecretRef,
434 >,
435}
436#[derive(prost_helpers::AnyPB)]
439#[derive(Clone, Copy, PartialEq, ::prost::Message)]
440pub struct BarrierRecvNode {}
441#[derive(prost_helpers::AnyPB)]
442#[derive(Clone, PartialEq, ::prost::Message)]
443pub struct SourceNode {
444 #[prost(message, optional, tag = "1")]
447 pub source_inner: ::core::option::Option<StreamSource>,
448}
449#[derive(prost_helpers::AnyPB)]
450#[derive(Clone, PartialEq, ::prost::Message)]
451pub struct StreamFsFetchNode {
452 #[prost(message, optional, tag = "1")]
453 pub node_inner: ::core::option::Option<StreamFsFetch>,
454}
455#[derive(prost_helpers::AnyPB)]
458#[derive(Clone, PartialEq, ::prost::Message)]
459pub struct SourceBackfillNode {
460 #[prost(uint32, tag = "1")]
461 pub upstream_source_id: u32,
462 #[prost(uint32, optional, tag = "2")]
463 pub row_id_index: ::core::option::Option<u32>,
464 #[prost(message, repeated, tag = "3")]
465 pub columns: ::prost::alloc::vec::Vec<super::plan_common::ColumnCatalog>,
466 #[prost(message, optional, tag = "4")]
467 pub info: ::core::option::Option<super::catalog::StreamSourceInfo>,
468 #[prost(string, tag = "5")]
469 pub source_name: ::prost::alloc::string::String,
470 #[prost(btree_map = "string, string", tag = "6")]
471 pub with_properties: ::prost::alloc::collections::BTreeMap<
472 ::prost::alloc::string::String,
473 ::prost::alloc::string::String,
474 >,
475 #[prost(uint32, optional, tag = "7")]
477 pub rate_limit: ::core::option::Option<u32>,
478 #[prost(message, optional, tag = "8")]
480 pub state_table: ::core::option::Option<super::catalog::Table>,
481 #[prost(btree_map = "string, message", tag = "9")]
482 pub secret_refs: ::prost::alloc::collections::BTreeMap<
483 ::prost::alloc::string::String,
484 super::secret::SecretRef,
485 >,
486}
487#[derive(prost_helpers::AnyPB)]
488#[derive(Clone, PartialEq, ::prost::Message)]
489pub struct SinkDesc {
490 #[prost(uint32, tag = "1")]
491 pub id: u32,
492 #[prost(string, tag = "2")]
493 pub name: ::prost::alloc::string::String,
494 #[prost(string, tag = "3")]
495 pub definition: ::prost::alloc::string::String,
496 #[prost(message, repeated, tag = "5")]
497 pub plan_pk: ::prost::alloc::vec::Vec<super::common::ColumnOrder>,
498 #[prost(uint32, repeated, tag = "6")]
499 pub downstream_pk: ::prost::alloc::vec::Vec<u32>,
500 #[prost(uint32, repeated, tag = "7")]
501 pub distribution_key: ::prost::alloc::vec::Vec<u32>,
502 #[prost(btree_map = "string, string", tag = "8")]
503 pub properties: ::prost::alloc::collections::BTreeMap<
504 ::prost::alloc::string::String,
505 ::prost::alloc::string::String,
506 >,
507 #[prost(enumeration = "super::catalog::SinkType", tag = "9")]
509 pub sink_type: i32,
510 #[prost(message, repeated, tag = "10")]
511 pub column_catalogs: ::prost::alloc::vec::Vec<super::plan_common::ColumnCatalog>,
512 #[prost(string, tag = "11")]
513 pub db_name: ::prost::alloc::string::String,
514 #[prost(string, tag = "12")]
517 pub sink_from_name: ::prost::alloc::string::String,
518 #[prost(message, optional, tag = "13")]
519 pub format_desc: ::core::option::Option<super::catalog::SinkFormatDesc>,
520 #[prost(uint32, optional, tag = "14")]
521 pub target_table: ::core::option::Option<u32>,
522 #[prost(uint64, optional, tag = "15")]
523 pub extra_partition_col_idx: ::core::option::Option<u64>,
524 #[prost(btree_map = "string, message", tag = "16")]
525 pub secret_refs: ::prost::alloc::collections::BTreeMap<
526 ::prost::alloc::string::String,
527 super::secret::SecretRef,
528 >,
529}
530#[derive(prost_helpers::AnyPB)]
531#[derive(Clone, PartialEq, ::prost::Message)]
532pub struct SinkNode {
533 #[prost(message, optional, tag = "1")]
534 pub sink_desc: ::core::option::Option<SinkDesc>,
535 #[prost(message, optional, tag = "2")]
537 pub table: ::core::option::Option<super::catalog::Table>,
538 #[prost(enumeration = "SinkLogStoreType", tag = "3")]
539 pub log_store_type: i32,
540 #[prost(uint32, optional, tag = "4")]
541 pub rate_limit: ::core::option::Option<u32>,
542}
543#[derive(prost_helpers::AnyPB)]
544#[derive(Clone, PartialEq, ::prost::Message)]
545pub struct ProjectNode {
546 #[prost(message, repeated, tag = "1")]
547 pub select_list: ::prost::alloc::vec::Vec<super::expr::ExprNode>,
548 #[prost(uint32, repeated, tag = "2")]
552 pub watermark_input_cols: ::prost::alloc::vec::Vec<u32>,
553 #[prost(uint32, repeated, tag = "3")]
554 pub watermark_output_cols: ::prost::alloc::vec::Vec<u32>,
555 #[prost(uint32, repeated, tag = "4")]
556 pub nondecreasing_exprs: ::prost::alloc::vec::Vec<u32>,
557 #[prost(bool, tag = "5")]
560 pub noop_update_hint: bool,
561}
562#[derive(prost_helpers::AnyPB)]
563#[derive(Clone, PartialEq, ::prost::Message)]
564pub struct FilterNode {
565 #[prost(message, optional, tag = "1")]
566 pub search_condition: ::core::option::Option<super::expr::ExprNode>,
567}
568#[derive(prost_helpers::AnyPB)]
569#[derive(Clone, Copy, PartialEq, ::prost::Message)]
570pub struct ChangeLogNode {
571 #[prost(bool, tag = "1")]
573 pub need_op: bool,
574}
575#[derive(prost_helpers::AnyPB)]
576#[derive(Clone, PartialEq, ::prost::Message)]
577pub struct CdcFilterNode {
578 #[prost(message, optional, tag = "1")]
579 pub search_condition: ::core::option::Option<super::expr::ExprNode>,
580 #[prost(uint32, tag = "2")]
581 pub upstream_source_id: u32,
582}
583#[derive(prost_helpers::AnyPB)]
591#[derive(Clone, PartialEq, ::prost::Message)]
592pub struct MaterializeNode {
593 #[prost(uint32, tag = "1")]
594 pub table_id: u32,
595 #[prost(message, repeated, tag = "2")]
597 pub column_orders: ::prost::alloc::vec::Vec<super::common::ColumnOrder>,
598 #[prost(message, optional, tag = "3")]
600 pub table: ::core::option::Option<super::catalog::Table>,
601}
602#[derive(prost_helpers::AnyPB)]
603#[derive(Clone, PartialEq, ::prost::Message)]
604pub struct AggCallState {
605 #[prost(oneof = "agg_call_state::Inner", tags = "1, 3")]
606 pub inner: ::core::option::Option<agg_call_state::Inner>,
607}
608pub mod agg_call_state {
610 #[derive(prost_helpers::AnyPB)]
612 #[derive(Clone, Copy, PartialEq, ::prost::Message)]
613 pub struct ValueState {}
614 #[derive(prost_helpers::AnyPB)]
616 #[derive(Clone, PartialEq, ::prost::Message)]
617 pub struct MaterializedInputState {
618 #[prost(message, optional, tag = "1")]
619 pub table: ::core::option::Option<super::super::catalog::Table>,
620 #[prost(uint32, repeated, tag = "2")]
622 pub included_upstream_indices: ::prost::alloc::vec::Vec<u32>,
623 #[prost(uint32, repeated, tag = "3")]
624 pub table_value_indices: ::prost::alloc::vec::Vec<u32>,
625 #[prost(message, repeated, tag = "4")]
626 pub order_columns: ::prost::alloc::vec::Vec<super::super::common::ColumnOrder>,
627 }
628 #[derive(prost_helpers::AnyPB)]
629 #[derive(Clone, PartialEq, ::prost::Oneof)]
630 pub enum Inner {
631 #[prost(message, tag = "1")]
632 ValueState(ValueState),
633 #[prost(message, tag = "3")]
634 MaterializedInputState(MaterializedInputState),
635 }
636}
637#[derive(prost_helpers::AnyPB)]
638#[derive(Clone, PartialEq, ::prost::Message)]
639pub struct SimpleAggNode {
640 #[prost(message, repeated, tag = "1")]
641 pub agg_calls: ::prost::alloc::vec::Vec<super::expr::AggCall>,
642 #[prost(uint32, repeated, tag = "2")]
644 pub distribution_key: ::prost::alloc::vec::Vec<u32>,
645 #[prost(message, repeated, tag = "3")]
646 pub agg_call_states: ::prost::alloc::vec::Vec<AggCallState>,
647 #[prost(message, optional, tag = "4")]
648 pub intermediate_state_table: ::core::option::Option<super::catalog::Table>,
649 #[prost(bool, tag = "5")]
652 pub is_append_only: bool,
653 #[prost(map = "uint32, message", tag = "6")]
654 pub distinct_dedup_tables: ::std::collections::HashMap<u32, super::catalog::Table>,
655 #[prost(uint32, tag = "7")]
656 pub row_count_index: u32,
657 #[prost(enumeration = "AggNodeVersion", tag = "8")]
658 pub version: i32,
659 #[prost(bool, tag = "9")]
662 pub must_output_per_barrier: bool,
663}
664#[derive(prost_helpers::AnyPB)]
665#[derive(Clone, PartialEq, ::prost::Message)]
666pub struct HashAggNode {
667 #[prost(uint32, repeated, tag = "1")]
668 pub group_key: ::prost::alloc::vec::Vec<u32>,
669 #[prost(message, repeated, tag = "2")]
670 pub agg_calls: ::prost::alloc::vec::Vec<super::expr::AggCall>,
671 #[prost(message, repeated, tag = "3")]
672 pub agg_call_states: ::prost::alloc::vec::Vec<AggCallState>,
673 #[prost(message, optional, tag = "4")]
674 pub intermediate_state_table: ::core::option::Option<super::catalog::Table>,
675 #[prost(bool, tag = "5")]
678 pub is_append_only: bool,
679 #[prost(map = "uint32, message", tag = "6")]
680 pub distinct_dedup_tables: ::std::collections::HashMap<u32, super::catalog::Table>,
681 #[prost(uint32, tag = "7")]
682 pub row_count_index: u32,
683 #[prost(bool, tag = "8")]
684 pub emit_on_window_close: bool,
685 #[prost(enumeration = "AggNodeVersion", tag = "9")]
686 pub version: i32,
687}
688#[derive(prost_helpers::AnyPB)]
689#[derive(Clone, PartialEq, ::prost::Message)]
690pub struct TopNNode {
691 #[prost(uint64, tag = "1")]
693 pub limit: u64,
694 #[prost(uint64, tag = "2")]
695 pub offset: u64,
696 #[prost(message, optional, tag = "3")]
697 pub table: ::core::option::Option<super::catalog::Table>,
698 #[prost(message, repeated, tag = "4")]
699 pub order_by: ::prost::alloc::vec::Vec<super::common::ColumnOrder>,
700 #[prost(bool, tag = "5")]
701 pub with_ties: bool,
702}
703#[derive(prost_helpers::AnyPB)]
704#[derive(Clone, PartialEq, ::prost::Message)]
705pub struct GroupTopNNode {
706 #[prost(uint64, tag = "1")]
708 pub limit: u64,
709 #[prost(uint64, tag = "2")]
710 pub offset: u64,
711 #[prost(uint32, repeated, tag = "3")]
712 pub group_key: ::prost::alloc::vec::Vec<u32>,
713 #[prost(message, optional, tag = "4")]
714 pub table: ::core::option::Option<super::catalog::Table>,
715 #[prost(message, repeated, tag = "5")]
716 pub order_by: ::prost::alloc::vec::Vec<super::common::ColumnOrder>,
717 #[prost(bool, tag = "6")]
718 pub with_ties: bool,
719}
720#[derive(prost_helpers::AnyPB)]
721#[derive(Clone, PartialEq, ::prost::Message)]
722pub struct DeltaExpression {
723 #[prost(enumeration = "super::expr::expr_node::Type", tag = "1")]
724 pub delta_type: i32,
725 #[prost(message, optional, tag = "2")]
726 pub delta: ::core::option::Option<super::expr::ExprNode>,
727}
728#[derive(prost_helpers::AnyPB)]
729#[derive(Clone, PartialEq, ::prost::Message)]
730pub struct InequalityPair {
731 #[prost(uint32, tag = "1")]
733 pub key_required_larger: u32,
734 #[prost(uint32, tag = "2")]
736 pub key_required_smaller: u32,
737 #[prost(bool, tag = "3")]
739 pub clean_state: bool,
740 #[prost(message, optional, tag = "4")]
742 pub delta_expression: ::core::option::Option<DeltaExpression>,
743}
744#[derive(prost_helpers::AnyPB)]
745#[derive(Clone, PartialEq, ::prost::Message)]
746pub struct HashJoinNode {
747 #[prost(enumeration = "super::plan_common::JoinType", tag = "1")]
748 pub join_type: i32,
749 #[prost(int32, repeated, tag = "2")]
750 pub left_key: ::prost::alloc::vec::Vec<i32>,
751 #[prost(int32, repeated, tag = "3")]
752 pub right_key: ::prost::alloc::vec::Vec<i32>,
753 #[prost(message, optional, tag = "4")]
754 pub condition: ::core::option::Option<super::expr::ExprNode>,
755 #[prost(message, repeated, tag = "5")]
756 pub inequality_pairs: ::prost::alloc::vec::Vec<InequalityPair>,
757 #[prost(message, optional, tag = "6")]
759 pub left_table: ::core::option::Option<super::catalog::Table>,
760 #[prost(message, optional, tag = "7")]
762 pub right_table: ::core::option::Option<super::catalog::Table>,
763 #[prost(message, optional, tag = "8")]
765 pub left_degree_table: ::core::option::Option<super::catalog::Table>,
766 #[prost(message, optional, tag = "9")]
768 pub right_degree_table: ::core::option::Option<super::catalog::Table>,
769 #[prost(uint32, repeated, tag = "10")]
771 pub output_indices: ::prost::alloc::vec::Vec<u32>,
772 #[prost(uint32, repeated, tag = "11")]
777 pub left_deduped_input_pk_indices: ::prost::alloc::vec::Vec<u32>,
778 #[prost(uint32, repeated, tag = "12")]
783 pub right_deduped_input_pk_indices: ::prost::alloc::vec::Vec<u32>,
784 #[prost(bool, repeated, tag = "13")]
785 pub null_safe: ::prost::alloc::vec::Vec<bool>,
786 #[prost(bool, tag = "14")]
789 pub is_append_only: bool,
790}
791#[derive(prost_helpers::AnyPB)]
792#[derive(Clone, PartialEq, ::prost::Message)]
793pub struct AsOfJoinNode {
794 #[prost(enumeration = "super::plan_common::AsOfJoinType", tag = "1")]
795 pub join_type: i32,
796 #[prost(int32, repeated, tag = "2")]
797 pub left_key: ::prost::alloc::vec::Vec<i32>,
798 #[prost(int32, repeated, tag = "3")]
799 pub right_key: ::prost::alloc::vec::Vec<i32>,
800 #[prost(message, optional, tag = "4")]
802 pub left_table: ::core::option::Option<super::catalog::Table>,
803 #[prost(message, optional, tag = "5")]
805 pub right_table: ::core::option::Option<super::catalog::Table>,
806 #[prost(uint32, repeated, tag = "6")]
808 pub output_indices: ::prost::alloc::vec::Vec<u32>,
809 #[prost(uint32, repeated, tag = "7")]
813 pub left_deduped_input_pk_indices: ::prost::alloc::vec::Vec<u32>,
814 #[prost(uint32, repeated, tag = "8")]
818 pub right_deduped_input_pk_indices: ::prost::alloc::vec::Vec<u32>,
819 #[prost(bool, repeated, tag = "9")]
820 pub null_safe: ::prost::alloc::vec::Vec<bool>,
821 #[prost(message, optional, tag = "10")]
822 pub asof_desc: ::core::option::Option<super::plan_common::AsOfJoinDesc>,
823}
824#[derive(prost_helpers::AnyPB)]
825#[derive(Clone, PartialEq, ::prost::Message)]
826pub struct TemporalJoinNode {
827 #[prost(enumeration = "super::plan_common::JoinType", tag = "1")]
828 pub join_type: i32,
829 #[prost(int32, repeated, tag = "2")]
830 pub left_key: ::prost::alloc::vec::Vec<i32>,
831 #[prost(int32, repeated, tag = "3")]
832 pub right_key: ::prost::alloc::vec::Vec<i32>,
833 #[prost(bool, repeated, tag = "4")]
834 pub null_safe: ::prost::alloc::vec::Vec<bool>,
835 #[prost(message, optional, tag = "5")]
836 pub condition: ::core::option::Option<super::expr::ExprNode>,
837 #[prost(uint32, repeated, tag = "6")]
839 pub output_indices: ::prost::alloc::vec::Vec<u32>,
840 #[prost(message, optional, tag = "7")]
842 pub table_desc: ::core::option::Option<super::plan_common::StorageTableDesc>,
843 #[prost(uint32, repeated, tag = "8")]
845 pub table_output_indices: ::prost::alloc::vec::Vec<u32>,
846 #[prost(message, optional, tag = "9")]
848 pub memo_table: ::core::option::Option<super::catalog::Table>,
849 #[prost(bool, tag = "10")]
851 pub is_nested_loop: bool,
852}
853#[derive(prost_helpers::AnyPB)]
854#[derive(Clone, PartialEq, ::prost::Message)]
855pub struct DynamicFilterNode {
856 #[prost(uint32, tag = "1")]
857 pub left_key: u32,
858 #[prost(message, optional, tag = "2")]
860 pub condition: ::core::option::Option<super::expr::ExprNode>,
861 #[prost(message, optional, tag = "3")]
863 pub left_table: ::core::option::Option<super::catalog::Table>,
864 #[prost(message, optional, tag = "4")]
866 pub right_table: ::core::option::Option<super::catalog::Table>,
867 #[deprecated]
874 #[prost(bool, tag = "5")]
875 pub condition_always_relax: bool,
876}
877#[derive(prost_helpers::AnyPB)]
880#[derive(Clone, PartialEq, ::prost::Message)]
881pub struct DeltaIndexJoinNode {
882 #[prost(enumeration = "super::plan_common::JoinType", tag = "1")]
883 pub join_type: i32,
884 #[prost(int32, repeated, tag = "2")]
885 pub left_key: ::prost::alloc::vec::Vec<i32>,
886 #[prost(int32, repeated, tag = "3")]
887 pub right_key: ::prost::alloc::vec::Vec<i32>,
888 #[prost(message, optional, tag = "4")]
889 pub condition: ::core::option::Option<super::expr::ExprNode>,
890 #[prost(uint32, tag = "7")]
892 pub left_table_id: u32,
893 #[prost(uint32, tag = "8")]
895 pub right_table_id: u32,
896 #[prost(message, optional, tag = "9")]
898 pub left_info: ::core::option::Option<ArrangementInfo>,
899 #[prost(message, optional, tag = "10")]
901 pub right_info: ::core::option::Option<ArrangementInfo>,
902 #[prost(uint32, repeated, tag = "11")]
904 pub output_indices: ::prost::alloc::vec::Vec<u32>,
905}
906#[derive(prost_helpers::AnyPB)]
907#[derive(Clone, PartialEq, ::prost::Message)]
908pub struct HopWindowNode {
909 #[prost(uint32, tag = "1")]
910 pub time_col: u32,
911 #[prost(message, optional, tag = "2")]
912 pub window_slide: ::core::option::Option<super::data::Interval>,
913 #[prost(message, optional, tag = "3")]
914 pub window_size: ::core::option::Option<super::data::Interval>,
915 #[prost(uint32, repeated, tag = "4")]
916 pub output_indices: ::prost::alloc::vec::Vec<u32>,
917 #[prost(message, repeated, tag = "5")]
918 pub window_start_exprs: ::prost::alloc::vec::Vec<super::expr::ExprNode>,
919 #[prost(message, repeated, tag = "6")]
920 pub window_end_exprs: ::prost::alloc::vec::Vec<super::expr::ExprNode>,
921}
922#[derive(prost_helpers::AnyPB)]
923#[derive(Clone, PartialEq, ::prost::Message)]
924pub struct MergeNode {
925 #[deprecated]
932 #[prost(uint32, repeated, packed = "false", tag = "1")]
933 pub upstream_actor_id: ::prost::alloc::vec::Vec<u32>,
934 #[prost(uint32, tag = "2")]
935 pub upstream_fragment_id: u32,
936 #[prost(enumeration = "DispatcherType", tag = "3")]
939 pub upstream_dispatcher_type: i32,
940 #[prost(message, repeated, tag = "4")]
942 pub fields: ::prost::alloc::vec::Vec<super::plan_common::Field>,
943}
944#[derive(prost_helpers::AnyPB)]
947#[derive(Clone, PartialEq, ::prost::Message)]
948pub struct ExchangeNode {
949 #[prost(message, optional, tag = "1")]
950 pub strategy: ::core::option::Option<DispatchStrategy>,
951}
952#[derive(prost_helpers::AnyPB)]
957#[derive(Clone, PartialEq, ::prost::Message)]
958pub struct StreamScanNode {
959 #[prost(uint32, tag = "1")]
960 pub table_id: u32,
961 #[prost(int32, repeated, tag = "2")]
965 pub upstream_column_ids: ::prost::alloc::vec::Vec<i32>,
966 #[prost(uint32, repeated, tag = "3")]
970 pub output_indices: ::prost::alloc::vec::Vec<u32>,
971 #[prost(enumeration = "StreamScanType", tag = "4")]
976 pub stream_scan_type: i32,
977 #[prost(message, optional, tag = "5")]
979 pub state_table: ::core::option::Option<super::catalog::Table>,
980 #[prost(message, optional, tag = "7")]
983 pub table_desc: ::core::option::Option<super::plan_common::StorageTableDesc>,
984 #[prost(uint32, optional, tag = "8")]
986 pub rate_limit: ::core::option::Option<u32>,
987 #[deprecated]
989 #[prost(uint32, tag = "9")]
990 pub snapshot_read_barrier_interval: u32,
991 #[prost(message, optional, tag = "10")]
994 pub arrangement_table: ::core::option::Option<super::catalog::Table>,
995 #[prost(uint64, optional, tag = "11")]
996 pub snapshot_backfill_epoch: ::core::option::Option<u64>,
997}
998#[derive(prost_helpers::AnyPB)]
1000#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1001pub struct StreamCdcScanOptions {
1002 #[prost(bool, tag = "1")]
1004 pub disable_backfill: bool,
1005 #[prost(uint32, tag = "2")]
1006 pub snapshot_barrier_interval: u32,
1007 #[prost(uint32, tag = "3")]
1008 pub snapshot_batch_size: u32,
1009}
1010#[derive(prost_helpers::AnyPB)]
1011#[derive(Clone, PartialEq, ::prost::Message)]
1012pub struct StreamCdcScanNode {
1013 #[prost(uint32, tag = "1")]
1014 pub table_id: u32,
1015 #[prost(int32, repeated, tag = "2")]
1018 pub upstream_column_ids: ::prost::alloc::vec::Vec<i32>,
1019 #[prost(uint32, repeated, tag = "3")]
1021 pub output_indices: ::prost::alloc::vec::Vec<u32>,
1022 #[prost(message, optional, tag = "4")]
1024 pub state_table: ::core::option::Option<super::catalog::Table>,
1025 #[prost(message, optional, tag = "5")]
1027 pub cdc_table_desc: ::core::option::Option<super::plan_common::ExternalTableDesc>,
1028 #[prost(uint32, optional, tag = "6")]
1030 pub rate_limit: ::core::option::Option<u32>,
1031 #[prost(bool, tag = "7")]
1034 pub disable_backfill: bool,
1035 #[prost(message, optional, tag = "8")]
1036 pub options: ::core::option::Option<StreamCdcScanOptions>,
1037}
1038#[derive(prost_helpers::AnyPB)]
1042#[derive(Clone, PartialEq, ::prost::Message)]
1043pub struct BatchPlanNode {
1044 #[prost(message, optional, tag = "1")]
1045 pub table_desc: ::core::option::Option<super::plan_common::StorageTableDesc>,
1046 #[prost(int32, repeated, tag = "2")]
1047 pub column_ids: ::prost::alloc::vec::Vec<i32>,
1048}
1049#[derive(prost_helpers::AnyPB)]
1050#[derive(Clone, PartialEq, ::prost::Message)]
1051pub struct ArrangementInfo {
1052 #[prost(message, repeated, tag = "1")]
1055 pub arrange_key_orders: ::prost::alloc::vec::Vec<super::common::ColumnOrder>,
1056 #[prost(message, repeated, tag = "2")]
1058 pub column_descs: ::prost::alloc::vec::Vec<super::plan_common::ColumnDesc>,
1059 #[prost(message, optional, tag = "4")]
1061 pub table_desc: ::core::option::Option<super::plan_common::StorageTableDesc>,
1062 #[prost(uint32, repeated, tag = "5")]
1064 pub output_col_idx: ::prost::alloc::vec::Vec<u32>,
1065}
1066#[derive(prost_helpers::AnyPB)]
1069#[derive(Clone, PartialEq, ::prost::Message)]
1070pub struct ArrangeNode {
1071 #[prost(message, optional, tag = "1")]
1073 pub table_info: ::core::option::Option<ArrangementInfo>,
1074 #[prost(uint32, repeated, tag = "2")]
1076 pub distribution_key: ::prost::alloc::vec::Vec<u32>,
1077 #[prost(message, optional, tag = "3")]
1079 pub table: ::core::option::Option<super::catalog::Table>,
1080}
1081#[derive(prost_helpers::AnyPB)]
1083#[derive(Clone, PartialEq, ::prost::Message)]
1084pub struct LookupNode {
1085 #[prost(int32, repeated, tag = "1")]
1087 pub arrange_key: ::prost::alloc::vec::Vec<i32>,
1088 #[prost(int32, repeated, tag = "2")]
1090 pub stream_key: ::prost::alloc::vec::Vec<i32>,
1091 #[prost(bool, tag = "3")]
1093 pub use_current_epoch: bool,
1094 #[prost(int32, repeated, tag = "4")]
1098 pub column_mapping: ::prost::alloc::vec::Vec<i32>,
1099 #[prost(message, optional, tag = "7")]
1101 pub arrangement_table_info: ::core::option::Option<ArrangementInfo>,
1102 #[prost(oneof = "lookup_node::ArrangementTableId", tags = "5, 6")]
1103 pub arrangement_table_id: ::core::option::Option<lookup_node::ArrangementTableId>,
1104}
1105pub mod lookup_node {
1107 #[derive(prost_helpers::AnyPB)]
1108 #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
1109 pub enum ArrangementTableId {
1110 #[prost(uint32, tag = "5")]
1112 TableId(u32),
1113 #[prost(uint32, tag = "6")]
1115 IndexId(u32),
1116 }
1117}
1118#[derive(prost_helpers::AnyPB)]
1120#[derive(Clone, PartialEq, ::prost::Message)]
1121pub struct WatermarkFilterNode {
1122 #[prost(message, repeated, tag = "1")]
1124 pub watermark_descs: ::prost::alloc::vec::Vec<super::catalog::WatermarkDesc>,
1125 #[prost(message, repeated, tag = "2")]
1127 pub tables: ::prost::alloc::vec::Vec<super::catalog::Table>,
1128}
1129#[derive(prost_helpers::AnyPB)]
1131#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1132pub struct UnionNode {}
1133#[derive(prost_helpers::AnyPB)]
1135#[derive(Clone, PartialEq, ::prost::Message)]
1136pub struct LookupUnionNode {
1137 #[prost(uint32, repeated, tag = "1")]
1138 pub order: ::prost::alloc::vec::Vec<u32>,
1139}
1140#[derive(prost_helpers::AnyPB)]
1141#[derive(Clone, PartialEq, ::prost::Message)]
1142pub struct ExpandNode {
1143 #[prost(message, repeated, tag = "1")]
1144 pub column_subsets: ::prost::alloc::vec::Vec<expand_node::Subset>,
1145}
1146pub mod expand_node {
1148 #[derive(prost_helpers::AnyPB)]
1149 #[derive(Clone, PartialEq, ::prost::Message)]
1150 pub struct Subset {
1151 #[prost(uint32, repeated, tag = "1")]
1152 pub column_indices: ::prost::alloc::vec::Vec<u32>,
1153 }
1154}
1155#[derive(prost_helpers::AnyPB)]
1156#[derive(Clone, PartialEq, ::prost::Message)]
1157pub struct ProjectSetNode {
1158 #[prost(message, repeated, tag = "1")]
1159 pub select_list: ::prost::alloc::vec::Vec<super::expr::ProjectSetSelectItem>,
1160 #[prost(uint32, repeated, tag = "2")]
1164 pub watermark_input_cols: ::prost::alloc::vec::Vec<u32>,
1165 #[prost(uint32, repeated, tag = "3")]
1166 pub watermark_expr_indices: ::prost::alloc::vec::Vec<u32>,
1167 #[prost(uint32, repeated, tag = "4")]
1168 pub nondecreasing_exprs: ::prost::alloc::vec::Vec<u32>,
1169}
1170#[derive(prost_helpers::AnyPB)]
1172#[derive(Clone, PartialEq, ::prost::Message)]
1173pub struct SortNode {
1174 #[prost(message, optional, tag = "1")]
1176 pub state_table: ::core::option::Option<super::catalog::Table>,
1177 #[prost(uint32, tag = "2")]
1179 pub sort_column_index: u32,
1180}
1181#[derive(prost_helpers::AnyPB)]
1183#[derive(Clone, PartialEq, ::prost::Message)]
1184pub struct DmlNode {
1185 #[prost(uint32, tag = "1")]
1187 pub table_id: u32,
1188 #[prost(uint64, tag = "3")]
1190 pub table_version_id: u64,
1191 #[prost(message, repeated, tag = "2")]
1193 pub column_descs: ::prost::alloc::vec::Vec<super::plan_common::ColumnDesc>,
1194 #[prost(uint32, optional, tag = "4")]
1195 pub rate_limit: ::core::option::Option<u32>,
1196}
1197#[derive(prost_helpers::AnyPB)]
1198#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1199pub struct RowIdGenNode {
1200 #[prost(uint64, tag = "1")]
1201 pub row_id_index: u64,
1202}
1203#[derive(prost_helpers::AnyPB)]
1204#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1205pub struct NowModeUpdateCurrent {}
1206#[derive(prost_helpers::AnyPB)]
1207#[derive(Clone, PartialEq, ::prost::Message)]
1208pub struct NowModeGenerateSeries {
1209 #[prost(message, optional, tag = "1")]
1210 pub start_timestamp: ::core::option::Option<super::data::Datum>,
1211 #[prost(message, optional, tag = "2")]
1212 pub interval: ::core::option::Option<super::data::Datum>,
1213}
1214#[derive(prost_helpers::AnyPB)]
1215#[derive(Clone, PartialEq, ::prost::Message)]
1216pub struct NowNode {
1217 #[prost(message, optional, tag = "1")]
1219 pub state_table: ::core::option::Option<super::catalog::Table>,
1220 #[prost(oneof = "now_node::Mode", tags = "101, 102")]
1221 pub mode: ::core::option::Option<now_node::Mode>,
1222}
1223pub mod now_node {
1225 #[derive(prost_helpers::AnyPB)]
1226 #[derive(Clone, PartialEq, ::prost::Oneof)]
1227 pub enum Mode {
1228 #[prost(message, tag = "101")]
1229 UpdateCurrent(super::NowModeUpdateCurrent),
1230 #[prost(message, tag = "102")]
1231 GenerateSeries(super::NowModeGenerateSeries),
1232 }
1233}
1234#[derive(prost_helpers::AnyPB)]
1235#[derive(Clone, PartialEq, ::prost::Message)]
1236pub struct ValuesNode {
1237 #[prost(message, repeated, tag = "1")]
1238 pub tuples: ::prost::alloc::vec::Vec<values_node::ExprTuple>,
1239 #[prost(message, repeated, tag = "2")]
1240 pub fields: ::prost::alloc::vec::Vec<super::plan_common::Field>,
1241}
1242pub mod values_node {
1244 #[derive(prost_helpers::AnyPB)]
1245 #[derive(Clone, PartialEq, ::prost::Message)]
1246 pub struct ExprTuple {
1247 #[prost(message, repeated, tag = "1")]
1248 pub cells: ::prost::alloc::vec::Vec<super::super::expr::ExprNode>,
1249 }
1250}
1251#[derive(prost_helpers::AnyPB)]
1252#[derive(Clone, PartialEq, ::prost::Message)]
1253pub struct DedupNode {
1254 #[prost(message, optional, tag = "1")]
1255 pub state_table: ::core::option::Option<super::catalog::Table>,
1256 #[prost(uint32, repeated, tag = "2")]
1257 pub dedup_column_indices: ::prost::alloc::vec::Vec<u32>,
1258}
1259#[derive(prost_helpers::AnyPB)]
1260#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1261pub struct NoOpNode {}
1262#[derive(prost_helpers::AnyPB)]
1263#[derive(Clone, PartialEq, ::prost::Message)]
1264pub struct EowcOverWindowNode {
1265 #[prost(message, repeated, tag = "1")]
1266 pub calls: ::prost::alloc::vec::Vec<super::expr::WindowFunction>,
1267 #[prost(uint32, repeated, tag = "2")]
1268 pub partition_by: ::prost::alloc::vec::Vec<u32>,
1269 #[prost(message, repeated, tag = "3")]
1271 pub order_by: ::prost::alloc::vec::Vec<super::common::ColumnOrder>,
1272 #[prost(message, optional, tag = "4")]
1273 pub state_table: ::core::option::Option<super::catalog::Table>,
1274}
1275#[derive(prost_helpers::AnyPB)]
1276#[derive(Clone, PartialEq, ::prost::Message)]
1277pub struct OverWindowNode {
1278 #[prost(message, repeated, tag = "1")]
1279 pub calls: ::prost::alloc::vec::Vec<super::expr::WindowFunction>,
1280 #[prost(uint32, repeated, tag = "2")]
1281 pub partition_by: ::prost::alloc::vec::Vec<u32>,
1282 #[prost(message, repeated, tag = "3")]
1283 pub order_by: ::prost::alloc::vec::Vec<super::common::ColumnOrder>,
1284 #[prost(message, optional, tag = "4")]
1285 pub state_table: ::core::option::Option<super::catalog::Table>,
1286 #[prost(enumeration = "OverWindowCachePolicy", tag = "5")]
1287 pub cache_policy: i32,
1288}
1289#[derive(prost_helpers::AnyPB)]
1290#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1291pub struct LocalApproxPercentileNode {
1292 #[prost(double, tag = "1")]
1293 pub base: f64,
1294 #[prost(uint32, tag = "2")]
1295 pub percentile_index: u32,
1296}
1297#[derive(prost_helpers::AnyPB)]
1298#[derive(Clone, PartialEq, ::prost::Message)]
1299pub struct GlobalApproxPercentileNode {
1300 #[prost(double, tag = "1")]
1301 pub base: f64,
1302 #[prost(double, tag = "2")]
1303 pub quantile: f64,
1304 #[prost(message, optional, tag = "3")]
1305 pub bucket_state_table: ::core::option::Option<super::catalog::Table>,
1306 #[prost(message, optional, tag = "4")]
1307 pub count_state_table: ::core::option::Option<super::catalog::Table>,
1308}
1309#[derive(prost_helpers::AnyPB)]
1310#[derive(Clone, PartialEq, ::prost::Message)]
1311pub struct RowMergeNode {
1312 #[prost(message, optional, tag = "1")]
1313 pub lhs_mapping: ::core::option::Option<super::catalog::ColIndexMapping>,
1314 #[prost(message, optional, tag = "2")]
1315 pub rhs_mapping: ::core::option::Option<super::catalog::ColIndexMapping>,
1316}
1317#[derive(prost_helpers::AnyPB)]
1318#[derive(Clone, PartialEq, ::prost::Message)]
1319pub struct SyncLogStoreNode {
1320 #[prost(message, optional, tag = "1")]
1321 pub log_store_table: ::core::option::Option<super::catalog::Table>,
1322 #[prost(uint32, tag = "2")]
1323 pub pause_duration_ms: u32,
1324 #[prost(uint32, tag = "3")]
1325 pub buffer_size: u32,
1326}
1327#[derive(prost_helpers::AnyPB)]
1328#[derive(Clone, PartialEq, ::prost::Message)]
1329pub struct MaterializedExprsNode {
1330 #[prost(message, repeated, tag = "1")]
1331 pub exprs: ::prost::alloc::vec::Vec<super::expr::ExprNode>,
1332 #[prost(message, optional, tag = "2")]
1333 pub state_table: ::core::option::Option<super::catalog::Table>,
1334 #[prost(uint32, optional, tag = "3")]
1335 pub state_clean_col_idx: ::core::option::Option<u32>,
1336}
1337#[derive(prost_helpers::AnyPB)]
1338#[derive(Clone, PartialEq, ::prost::Message)]
1339pub struct StreamNode {
1340 #[prost(uint64, tag = "1")]
1343 pub operator_id: u64,
1344 #[prost(message, repeated, tag = "3")]
1346 pub input: ::prost::alloc::vec::Vec<StreamNode>,
1347 #[prost(uint32, repeated, tag = "2")]
1348 pub stream_key: ::prost::alloc::vec::Vec<u32>,
1349 #[prost(bool, tag = "24")]
1350 pub append_only: bool,
1351 #[prost(string, tag = "18")]
1352 pub identity: ::prost::alloc::string::String,
1353 #[prost(message, repeated, tag = "19")]
1355 pub fields: ::prost::alloc::vec::Vec<super::plan_common::Field>,
1356 #[prost(
1357 oneof = "stream_node::NodeBody",
1358 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"
1359 )]
1360 pub node_body: ::core::option::Option<stream_node::NodeBody>,
1361}
1362pub mod stream_node {
1364 #[derive(prost_helpers::AnyPB)]
1365 #[derive(::enum_as_inner::EnumAsInner, ::strum::Display, ::strum::EnumDiscriminants)]
1366 #[derive(Clone, PartialEq, ::prost::Oneof)]
1367 pub enum NodeBody {
1368 #[prost(message, tag = "100")]
1369 Source(::prost::alloc::boxed::Box<super::SourceNode>),
1370 #[prost(message, tag = "101")]
1371 Project(::prost::alloc::boxed::Box<super::ProjectNode>),
1372 #[prost(message, tag = "102")]
1373 Filter(::prost::alloc::boxed::Box<super::FilterNode>),
1374 #[prost(message, tag = "103")]
1375 Materialize(::prost::alloc::boxed::Box<super::MaterializeNode>),
1376 #[prost(message, tag = "104")]
1377 StatelessSimpleAgg(::prost::alloc::boxed::Box<super::SimpleAggNode>),
1378 #[prost(message, tag = "105")]
1379 SimpleAgg(::prost::alloc::boxed::Box<super::SimpleAggNode>),
1380 #[prost(message, tag = "106")]
1381 HashAgg(::prost::alloc::boxed::Box<super::HashAggNode>),
1382 #[prost(message, tag = "107")]
1383 AppendOnlyTopN(::prost::alloc::boxed::Box<super::TopNNode>),
1384 #[prost(message, tag = "108")]
1385 HashJoin(::prost::alloc::boxed::Box<super::HashJoinNode>),
1386 #[prost(message, tag = "109")]
1387 TopN(::prost::alloc::boxed::Box<super::TopNNode>),
1388 #[prost(message, tag = "110")]
1389 HopWindow(::prost::alloc::boxed::Box<super::HopWindowNode>),
1390 #[prost(message, tag = "111")]
1391 Merge(::prost::alloc::boxed::Box<super::MergeNode>),
1392 #[prost(message, tag = "112")]
1393 Exchange(::prost::alloc::boxed::Box<super::ExchangeNode>),
1394 #[prost(message, tag = "113")]
1395 StreamScan(::prost::alloc::boxed::Box<super::StreamScanNode>),
1396 #[prost(message, tag = "114")]
1397 BatchPlan(::prost::alloc::boxed::Box<super::BatchPlanNode>),
1398 #[prost(message, tag = "115")]
1399 Lookup(::prost::alloc::boxed::Box<super::LookupNode>),
1400 #[prost(message, tag = "116")]
1401 Arrange(::prost::alloc::boxed::Box<super::ArrangeNode>),
1402 #[prost(message, tag = "117")]
1403 LookupUnion(::prost::alloc::boxed::Box<super::LookupUnionNode>),
1404 #[prost(message, tag = "118")]
1405 Union(super::UnionNode),
1406 #[prost(message, tag = "119")]
1407 DeltaIndexJoin(::prost::alloc::boxed::Box<super::DeltaIndexJoinNode>),
1408 #[prost(message, tag = "120")]
1409 Sink(::prost::alloc::boxed::Box<super::SinkNode>),
1410 #[prost(message, tag = "121")]
1411 Expand(::prost::alloc::boxed::Box<super::ExpandNode>),
1412 #[prost(message, tag = "122")]
1413 DynamicFilter(::prost::alloc::boxed::Box<super::DynamicFilterNode>),
1414 #[prost(message, tag = "123")]
1415 ProjectSet(::prost::alloc::boxed::Box<super::ProjectSetNode>),
1416 #[prost(message, tag = "124")]
1417 GroupTopN(::prost::alloc::boxed::Box<super::GroupTopNNode>),
1418 #[prost(message, tag = "125")]
1419 Sort(::prost::alloc::boxed::Box<super::SortNode>),
1420 #[prost(message, tag = "126")]
1421 WatermarkFilter(::prost::alloc::boxed::Box<super::WatermarkFilterNode>),
1422 #[prost(message, tag = "127")]
1423 Dml(::prost::alloc::boxed::Box<super::DmlNode>),
1424 #[prost(message, tag = "128")]
1425 RowIdGen(::prost::alloc::boxed::Box<super::RowIdGenNode>),
1426 #[prost(message, tag = "129")]
1427 Now(::prost::alloc::boxed::Box<super::NowNode>),
1428 #[prost(message, tag = "130")]
1429 AppendOnlyGroupTopN(::prost::alloc::boxed::Box<super::GroupTopNNode>),
1430 #[prost(message, tag = "131")]
1431 TemporalJoin(::prost::alloc::boxed::Box<super::TemporalJoinNode>),
1432 #[prost(message, tag = "132")]
1433 BarrierRecv(::prost::alloc::boxed::Box<super::BarrierRecvNode>),
1434 #[prost(message, tag = "133")]
1435 Values(::prost::alloc::boxed::Box<super::ValuesNode>),
1436 #[prost(message, tag = "134")]
1437 AppendOnlyDedup(::prost::alloc::boxed::Box<super::DedupNode>),
1438 #[prost(message, tag = "135")]
1439 NoOp(super::NoOpNode),
1440 #[prost(message, tag = "136")]
1441 EowcOverWindow(::prost::alloc::boxed::Box<super::EowcOverWindowNode>),
1442 #[prost(message, tag = "137")]
1443 OverWindow(::prost::alloc::boxed::Box<super::OverWindowNode>),
1444 #[prost(message, tag = "138")]
1445 StreamFsFetch(::prost::alloc::boxed::Box<super::StreamFsFetchNode>),
1446 #[prost(message, tag = "139")]
1447 StreamCdcScan(::prost::alloc::boxed::Box<super::StreamCdcScanNode>),
1448 #[prost(message, tag = "140")]
1449 CdcFilter(::prost::alloc::boxed::Box<super::CdcFilterNode>),
1450 #[prost(message, tag = "142")]
1451 SourceBackfill(::prost::alloc::boxed::Box<super::SourceBackfillNode>),
1452 #[prost(message, tag = "143")]
1453 Changelog(::prost::alloc::boxed::Box<super::ChangeLogNode>),
1454 #[prost(message, tag = "144")]
1455 LocalApproxPercentile(
1456 ::prost::alloc::boxed::Box<super::LocalApproxPercentileNode>,
1457 ),
1458 #[prost(message, tag = "145")]
1459 GlobalApproxPercentile(
1460 ::prost::alloc::boxed::Box<super::GlobalApproxPercentileNode>,
1461 ),
1462 #[prost(message, tag = "146")]
1463 RowMerge(::prost::alloc::boxed::Box<super::RowMergeNode>),
1464 #[prost(message, tag = "147")]
1465 AsOfJoin(::prost::alloc::boxed::Box<super::AsOfJoinNode>),
1466 #[prost(message, tag = "148")]
1467 SyncLogStore(::prost::alloc::boxed::Box<super::SyncLogStoreNode>),
1468 #[prost(message, tag = "149")]
1469 MaterializedExprs(::prost::alloc::boxed::Box<super::MaterializedExprsNode>),
1470 }
1471}
1472#[derive(prost_helpers::AnyPB)]
1485#[derive(Clone, PartialEq, ::prost::Message)]
1486pub struct DispatchOutputMapping {
1487 #[prost(uint32, repeated, tag = "1")]
1489 pub indices: ::prost::alloc::vec::Vec<u32>,
1490 #[prost(message, repeated, tag = "2")]
1495 pub types: ::prost::alloc::vec::Vec<dispatch_output_mapping::TypePair>,
1496}
1497pub mod dispatch_output_mapping {
1499 #[derive(prost_helpers::AnyPB)]
1500 #[derive(Clone, PartialEq, ::prost::Message)]
1501 pub struct TypePair {
1502 #[prost(message, optional, tag = "1")]
1503 pub upstream: ::core::option::Option<super::super::data::DataType>,
1504 #[prost(message, optional, tag = "2")]
1505 pub downstream: ::core::option::Option<super::super::data::DataType>,
1506 }
1507}
1508#[derive(prost_helpers::AnyPB)]
1511#[derive(Clone, PartialEq, ::prost::Message)]
1512pub struct DispatchStrategy {
1513 #[prost(enumeration = "DispatcherType", tag = "1")]
1514 pub r#type: i32,
1515 #[prost(uint32, repeated, tag = "2")]
1516 pub dist_key_indices: ::prost::alloc::vec::Vec<u32>,
1517 #[prost(message, optional, tag = "3")]
1518 pub output_mapping: ::core::option::Option<DispatchOutputMapping>,
1519}
1520#[derive(prost_helpers::AnyPB)]
1523#[derive(Clone, PartialEq, ::prost::Message)]
1524pub struct Dispatcher {
1525 #[prost(enumeration = "DispatcherType", tag = "1")]
1526 pub r#type: i32,
1527 #[prost(uint32, repeated, tag = "2")]
1530 pub dist_key_indices: ::prost::alloc::vec::Vec<u32>,
1531 #[prost(message, optional, tag = "6")]
1533 pub output_mapping: ::core::option::Option<DispatchOutputMapping>,
1534 #[prost(message, optional, tag = "3")]
1537 pub hash_mapping: ::core::option::Option<ActorMapping>,
1538 #[prost(uint64, tag = "4")]
1541 pub dispatcher_id: u64,
1542 #[prost(uint32, repeated, tag = "5")]
1544 pub downstream_actor_id: ::prost::alloc::vec::Vec<u32>,
1545}
1546#[derive(prost_helpers::AnyPB)]
1548#[derive(Clone, PartialEq, ::prost::Message)]
1549pub struct StreamActor {
1550 #[prost(uint32, tag = "1")]
1551 pub actor_id: u32,
1552 #[prost(uint32, tag = "2")]
1553 pub fragment_id: u32,
1554 #[prost(message, repeated, tag = "4")]
1555 pub dispatcher: ::prost::alloc::vec::Vec<Dispatcher>,
1556 #[prost(message, optional, tag = "8")]
1559 pub vnode_bitmap: ::core::option::Option<super::common::Buffer>,
1560 #[prost(string, tag = "9")]
1562 pub mview_definition: ::prost::alloc::string::String,
1563 #[prost(message, optional, tag = "10")]
1565 pub expr_context: ::core::option::Option<super::plan_common::ExprContext>,
1566}
1567#[derive(prost_helpers::AnyPB)]
1569#[derive(Clone, PartialEq, ::prost::Message)]
1570pub struct StreamContext {
1571 #[prost(string, tag = "1")]
1573 pub timezone: ::prost::alloc::string::String,
1574}
1575#[derive(prost_helpers::AnyPB)]
1576#[derive(Clone, PartialEq, ::prost::Message)]
1577pub struct BackfillOrder {
1578 #[prost(map = "uint32, message", tag = "1")]
1579 pub order: ::std::collections::HashMap<u32, super::common::Uint32Vector>,
1580}
1581#[derive(prost_helpers::AnyPB)]
1586#[derive(Clone, PartialEq, ::prost::Message)]
1587pub struct StreamFragmentGraph {
1588 #[prost(map = "uint32, message", tag = "1")]
1590 pub fragments: ::std::collections::HashMap<
1591 u32,
1592 stream_fragment_graph::StreamFragment,
1593 >,
1594 #[prost(message, repeated, tag = "2")]
1596 pub edges: ::prost::alloc::vec::Vec<stream_fragment_graph::StreamFragmentEdge>,
1597 #[prost(uint32, repeated, tag = "3")]
1598 pub dependent_table_ids: ::prost::alloc::vec::Vec<u32>,
1599 #[prost(uint32, tag = "4")]
1600 pub table_ids_cnt: u32,
1601 #[prost(message, optional, tag = "5")]
1602 pub ctx: ::core::option::Option<StreamContext>,
1603 #[prost(message, optional, tag = "6")]
1605 pub parallelism: ::core::option::Option<stream_fragment_graph::Parallelism>,
1606 #[prost(uint32, tag = "7")]
1616 pub max_parallelism: u32,
1617 #[prost(message, optional, tag = "8")]
1619 pub backfill_order: ::core::option::Option<BackfillOrder>,
1620}
1621pub mod stream_fragment_graph {
1623 #[derive(prost_helpers::AnyPB)]
1624 #[derive(Clone, PartialEq, ::prost::Message)]
1625 pub struct StreamFragment {
1626 #[prost(uint32, tag = "1")]
1628 pub fragment_id: u32,
1629 #[prost(message, optional, tag = "2")]
1631 pub node: ::core::option::Option<super::StreamNode>,
1632 #[prost(uint32, tag = "3")]
1634 pub fragment_type_mask: u32,
1635 #[prost(bool, tag = "4")]
1639 pub requires_singleton: bool,
1640 #[prost(uint32, tag = "5")]
1642 pub table_ids_cnt: u32,
1643 #[prost(uint32, repeated, tag = "6")]
1645 pub upstream_table_ids: ::prost::alloc::vec::Vec<u32>,
1646 }
1647 #[derive(prost_helpers::AnyPB)]
1648 #[derive(Clone, PartialEq, ::prost::Message)]
1649 pub struct StreamFragmentEdge {
1650 #[prost(message, optional, tag = "1")]
1652 pub dispatch_strategy: ::core::option::Option<super::DispatchStrategy>,
1653 #[prost(uint64, tag = "3")]
1657 pub link_id: u64,
1658 #[prost(uint32, tag = "4")]
1659 pub upstream_id: u32,
1660 #[prost(uint32, tag = "5")]
1661 pub downstream_id: u32,
1662 }
1663 #[derive(prost_helpers::AnyPB)]
1664 #[derive(Clone, Copy, PartialEq, ::prost::Message)]
1665 pub struct Parallelism {
1666 #[prost(uint64, tag = "1")]
1667 pub parallelism: u64,
1668 }
1669}
1670#[derive(prost_helpers::AnyPB)]
1671#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1672#[repr(i32)]
1673pub enum SinkLogStoreType {
1674 Unspecified = 0,
1676 KvLogStore = 1,
1677 InMemoryLogStore = 2,
1678}
1679impl SinkLogStoreType {
1680 pub fn as_str_name(&self) -> &'static str {
1685 match self {
1686 Self::Unspecified => "SINK_LOG_STORE_TYPE_UNSPECIFIED",
1687 Self::KvLogStore => "SINK_LOG_STORE_TYPE_KV_LOG_STORE",
1688 Self::InMemoryLogStore => "SINK_LOG_STORE_TYPE_IN_MEMORY_LOG_STORE",
1689 }
1690 }
1691 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1693 match value {
1694 "SINK_LOG_STORE_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
1695 "SINK_LOG_STORE_TYPE_KV_LOG_STORE" => Some(Self::KvLogStore),
1696 "SINK_LOG_STORE_TYPE_IN_MEMORY_LOG_STORE" => Some(Self::InMemoryLogStore),
1697 _ => None,
1698 }
1699 }
1700}
1701#[derive(prost_helpers::AnyPB)]
1702#[derive(prost_helpers::Version)]
1703#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1704#[repr(i32)]
1705pub enum AggNodeVersion {
1706 Unspecified = 0,
1707 Issue12140 = 1,
1709 Issue13465 = 2,
1711}
1712impl AggNodeVersion {
1713 pub fn as_str_name(&self) -> &'static str {
1718 match self {
1719 Self::Unspecified => "AGG_NODE_VERSION_UNSPECIFIED",
1720 Self::Issue12140 => "AGG_NODE_VERSION_ISSUE_12140",
1721 Self::Issue13465 => "AGG_NODE_VERSION_ISSUE_13465",
1722 }
1723 }
1724 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1726 match value {
1727 "AGG_NODE_VERSION_UNSPECIFIED" => Some(Self::Unspecified),
1728 "AGG_NODE_VERSION_ISSUE_12140" => Some(Self::Issue12140),
1729 "AGG_NODE_VERSION_ISSUE_13465" => Some(Self::Issue13465),
1730 _ => None,
1731 }
1732 }
1733}
1734#[derive(prost_helpers::AnyPB)]
1736#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1737#[repr(i32)]
1738pub enum StreamScanType {
1739 Unspecified = 0,
1740 Chain = 1,
1742 Rearrange = 2,
1744 Backfill = 3,
1746 UpstreamOnly = 4,
1748 ArrangementBackfill = 5,
1750 SnapshotBackfill = 6,
1752 CrossDbSnapshotBackfill = 7,
1754}
1755impl StreamScanType {
1756 pub fn as_str_name(&self) -> &'static str {
1761 match self {
1762 Self::Unspecified => "STREAM_SCAN_TYPE_UNSPECIFIED",
1763 Self::Chain => "STREAM_SCAN_TYPE_CHAIN",
1764 Self::Rearrange => "STREAM_SCAN_TYPE_REARRANGE",
1765 Self::Backfill => "STREAM_SCAN_TYPE_BACKFILL",
1766 Self::UpstreamOnly => "STREAM_SCAN_TYPE_UPSTREAM_ONLY",
1767 Self::ArrangementBackfill => "STREAM_SCAN_TYPE_ARRANGEMENT_BACKFILL",
1768 Self::SnapshotBackfill => "STREAM_SCAN_TYPE_SNAPSHOT_BACKFILL",
1769 Self::CrossDbSnapshotBackfill => {
1770 "STREAM_SCAN_TYPE_CROSS_DB_SNAPSHOT_BACKFILL"
1771 }
1772 }
1773 }
1774 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1776 match value {
1777 "STREAM_SCAN_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
1778 "STREAM_SCAN_TYPE_CHAIN" => Some(Self::Chain),
1779 "STREAM_SCAN_TYPE_REARRANGE" => Some(Self::Rearrange),
1780 "STREAM_SCAN_TYPE_BACKFILL" => Some(Self::Backfill),
1781 "STREAM_SCAN_TYPE_UPSTREAM_ONLY" => Some(Self::UpstreamOnly),
1782 "STREAM_SCAN_TYPE_ARRANGEMENT_BACKFILL" => Some(Self::ArrangementBackfill),
1783 "STREAM_SCAN_TYPE_SNAPSHOT_BACKFILL" => Some(Self::SnapshotBackfill),
1784 "STREAM_SCAN_TYPE_CROSS_DB_SNAPSHOT_BACKFILL" => {
1785 Some(Self::CrossDbSnapshotBackfill)
1786 }
1787 _ => None,
1788 }
1789 }
1790}
1791#[derive(prost_helpers::AnyPB)]
1792#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1793#[repr(i32)]
1794pub enum OverWindowCachePolicy {
1795 Unspecified = 0,
1796 Full = 1,
1797 Recent = 2,
1798 RecentFirstN = 3,
1799 RecentLastN = 4,
1800}
1801impl OverWindowCachePolicy {
1802 pub fn as_str_name(&self) -> &'static str {
1807 match self {
1808 Self::Unspecified => "OVER_WINDOW_CACHE_POLICY_UNSPECIFIED",
1809 Self::Full => "OVER_WINDOW_CACHE_POLICY_FULL",
1810 Self::Recent => "OVER_WINDOW_CACHE_POLICY_RECENT",
1811 Self::RecentFirstN => "OVER_WINDOW_CACHE_POLICY_RECENT_FIRST_N",
1812 Self::RecentLastN => "OVER_WINDOW_CACHE_POLICY_RECENT_LAST_N",
1813 }
1814 }
1815 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1817 match value {
1818 "OVER_WINDOW_CACHE_POLICY_UNSPECIFIED" => Some(Self::Unspecified),
1819 "OVER_WINDOW_CACHE_POLICY_FULL" => Some(Self::Full),
1820 "OVER_WINDOW_CACHE_POLICY_RECENT" => Some(Self::Recent),
1821 "OVER_WINDOW_CACHE_POLICY_RECENT_FIRST_N" => Some(Self::RecentFirstN),
1822 "OVER_WINDOW_CACHE_POLICY_RECENT_LAST_N" => Some(Self::RecentLastN),
1823 _ => None,
1824 }
1825 }
1826}
1827#[derive(prost_helpers::AnyPB)]
1828#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1829#[repr(i32)]
1830pub enum DispatcherType {
1831 Unspecified = 0,
1832 Hash = 1,
1834 Broadcast = 2,
1839 Simple = 3,
1841 NoShuffle = 4,
1845}
1846impl DispatcherType {
1847 pub fn as_str_name(&self) -> &'static str {
1852 match self {
1853 Self::Unspecified => "DISPATCHER_TYPE_UNSPECIFIED",
1854 Self::Hash => "DISPATCHER_TYPE_HASH",
1855 Self::Broadcast => "DISPATCHER_TYPE_BROADCAST",
1856 Self::Simple => "DISPATCHER_TYPE_SIMPLE",
1857 Self::NoShuffle => "DISPATCHER_TYPE_NO_SHUFFLE",
1858 }
1859 }
1860 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1862 match value {
1863 "DISPATCHER_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
1864 "DISPATCHER_TYPE_HASH" => Some(Self::Hash),
1865 "DISPATCHER_TYPE_BROADCAST" => Some(Self::Broadcast),
1866 "DISPATCHER_TYPE_SIMPLE" => Some(Self::Simple),
1867 "DISPATCHER_TYPE_NO_SHUFFLE" => Some(Self::NoShuffle),
1868 _ => None,
1869 }
1870 }
1871}
1872#[derive(prost_helpers::AnyPB)]
1874#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1875#[repr(i32)]
1876pub enum FragmentTypeFlag {
1877 FragmentUnspecified = 0,
1878 Source = 1,
1879 Mview = 2,
1880 Sink = 4,
1881 Now = 8,
1883 StreamScan = 16,
1885 BarrierRecv = 32,
1886 Values = 64,
1887 Dml = 128,
1888 CdcFilter = 256,
1889 SourceScan = 1024,
1890 SnapshotBackfillStreamScan = 2048,
1891 FsFetch = 4096,
1893 CrossDbSnapshotBackfillStreamScan = 8192,
1894}
1895impl FragmentTypeFlag {
1896 pub fn as_str_name(&self) -> &'static str {
1901 match self {
1902 Self::FragmentUnspecified => "FRAGMENT_TYPE_FLAG_FRAGMENT_UNSPECIFIED",
1903 Self::Source => "FRAGMENT_TYPE_FLAG_SOURCE",
1904 Self::Mview => "FRAGMENT_TYPE_FLAG_MVIEW",
1905 Self::Sink => "FRAGMENT_TYPE_FLAG_SINK",
1906 Self::Now => "FRAGMENT_TYPE_FLAG_NOW",
1907 Self::StreamScan => "FRAGMENT_TYPE_FLAG_STREAM_SCAN",
1908 Self::BarrierRecv => "FRAGMENT_TYPE_FLAG_BARRIER_RECV",
1909 Self::Values => "FRAGMENT_TYPE_FLAG_VALUES",
1910 Self::Dml => "FRAGMENT_TYPE_FLAG_DML",
1911 Self::CdcFilter => "FRAGMENT_TYPE_FLAG_CDC_FILTER",
1912 Self::SourceScan => "FRAGMENT_TYPE_FLAG_SOURCE_SCAN",
1913 Self::SnapshotBackfillStreamScan => {
1914 "FRAGMENT_TYPE_FLAG_SNAPSHOT_BACKFILL_STREAM_SCAN"
1915 }
1916 Self::FsFetch => "FRAGMENT_TYPE_FLAG_FS_FETCH",
1917 Self::CrossDbSnapshotBackfillStreamScan => {
1918 "FRAGMENT_TYPE_FLAG_CROSS_DB_SNAPSHOT_BACKFILL_STREAM_SCAN"
1919 }
1920 }
1921 }
1922 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1924 match value {
1925 "FRAGMENT_TYPE_FLAG_FRAGMENT_UNSPECIFIED" => Some(Self::FragmentUnspecified),
1926 "FRAGMENT_TYPE_FLAG_SOURCE" => Some(Self::Source),
1927 "FRAGMENT_TYPE_FLAG_MVIEW" => Some(Self::Mview),
1928 "FRAGMENT_TYPE_FLAG_SINK" => Some(Self::Sink),
1929 "FRAGMENT_TYPE_FLAG_NOW" => Some(Self::Now),
1930 "FRAGMENT_TYPE_FLAG_STREAM_SCAN" => Some(Self::StreamScan),
1931 "FRAGMENT_TYPE_FLAG_BARRIER_RECV" => Some(Self::BarrierRecv),
1932 "FRAGMENT_TYPE_FLAG_VALUES" => Some(Self::Values),
1933 "FRAGMENT_TYPE_FLAG_DML" => Some(Self::Dml),
1934 "FRAGMENT_TYPE_FLAG_CDC_FILTER" => Some(Self::CdcFilter),
1935 "FRAGMENT_TYPE_FLAG_SOURCE_SCAN" => Some(Self::SourceScan),
1936 "FRAGMENT_TYPE_FLAG_SNAPSHOT_BACKFILL_STREAM_SCAN" => {
1937 Some(Self::SnapshotBackfillStreamScan)
1938 }
1939 "FRAGMENT_TYPE_FLAG_FS_FETCH" => Some(Self::FsFetch),
1940 "FRAGMENT_TYPE_FLAG_CROSS_DB_SNAPSHOT_BACKFILL_STREAM_SCAN" => {
1941 Some(Self::CrossDbSnapshotBackfillStreamScan)
1942 }
1943 _ => None,
1944 }
1945 }
1946}