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)]
1475#[derive(Clone, PartialEq, ::prost::Message)]
1476pub struct DispatchStrategy {
1477 #[prost(enumeration = "DispatcherType", tag = "1")]
1478 pub r#type: i32,
1479 #[prost(uint32, repeated, tag = "2")]
1480 pub dist_key_indices: ::prost::alloc::vec::Vec<u32>,
1481 #[prost(uint32, repeated, tag = "3")]
1482 pub output_indices: ::prost::alloc::vec::Vec<u32>,
1483}
1484#[derive(prost_helpers::AnyPB)]
1487#[derive(Clone, PartialEq, ::prost::Message)]
1488pub struct Dispatcher {
1489 #[prost(enumeration = "DispatcherType", tag = "1")]
1490 pub r#type: i32,
1491 #[prost(uint32, repeated, tag = "2")]
1494 pub dist_key_indices: ::prost::alloc::vec::Vec<u32>,
1495 #[prost(uint32, repeated, tag = "6")]
1499 pub output_indices: ::prost::alloc::vec::Vec<u32>,
1500 #[prost(message, optional, tag = "3")]
1503 pub hash_mapping: ::core::option::Option<ActorMapping>,
1504 #[prost(uint64, tag = "4")]
1507 pub dispatcher_id: u64,
1508 #[prost(uint32, repeated, tag = "5")]
1510 pub downstream_actor_id: ::prost::alloc::vec::Vec<u32>,
1511}
1512#[derive(prost_helpers::AnyPB)]
1514#[derive(Clone, PartialEq, ::prost::Message)]
1515pub struct StreamActor {
1516 #[prost(uint32, tag = "1")]
1517 pub actor_id: u32,
1518 #[prost(uint32, tag = "2")]
1519 pub fragment_id: u32,
1520 #[prost(message, repeated, tag = "4")]
1521 pub dispatcher: ::prost::alloc::vec::Vec<Dispatcher>,
1522 #[prost(message, optional, tag = "8")]
1525 pub vnode_bitmap: ::core::option::Option<super::common::Buffer>,
1526 #[prost(string, tag = "9")]
1528 pub mview_definition: ::prost::alloc::string::String,
1529 #[prost(message, optional, tag = "10")]
1531 pub expr_context: ::core::option::Option<super::plan_common::ExprContext>,
1532}
1533#[derive(prost_helpers::AnyPB)]
1535#[derive(Clone, PartialEq, ::prost::Message)]
1536pub struct StreamContext {
1537 #[prost(string, tag = "1")]
1539 pub timezone: ::prost::alloc::string::String,
1540}
1541#[derive(prost_helpers::AnyPB)]
1542#[derive(Clone, PartialEq, ::prost::Message)]
1543pub struct BackfillOrder {
1544 #[prost(map = "uint32, message", tag = "1")]
1545 pub order: ::std::collections::HashMap<u32, super::common::Uint32Vector>,
1546}
1547#[derive(prost_helpers::AnyPB)]
1552#[derive(Clone, PartialEq, ::prost::Message)]
1553pub struct StreamFragmentGraph {
1554 #[prost(map = "uint32, message", tag = "1")]
1556 pub fragments: ::std::collections::HashMap<
1557 u32,
1558 stream_fragment_graph::StreamFragment,
1559 >,
1560 #[prost(message, repeated, tag = "2")]
1562 pub edges: ::prost::alloc::vec::Vec<stream_fragment_graph::StreamFragmentEdge>,
1563 #[prost(uint32, repeated, tag = "3")]
1564 pub dependent_table_ids: ::prost::alloc::vec::Vec<u32>,
1565 #[prost(uint32, tag = "4")]
1566 pub table_ids_cnt: u32,
1567 #[prost(message, optional, tag = "5")]
1568 pub ctx: ::core::option::Option<StreamContext>,
1569 #[prost(message, optional, tag = "6")]
1571 pub parallelism: ::core::option::Option<stream_fragment_graph::Parallelism>,
1572 #[prost(uint32, tag = "7")]
1582 pub max_parallelism: u32,
1583 #[prost(message, optional, tag = "8")]
1585 pub backfill_order: ::core::option::Option<BackfillOrder>,
1586}
1587pub mod stream_fragment_graph {
1589 #[derive(prost_helpers::AnyPB)]
1590 #[derive(Clone, PartialEq, ::prost::Message)]
1591 pub struct StreamFragment {
1592 #[prost(uint32, tag = "1")]
1594 pub fragment_id: u32,
1595 #[prost(message, optional, tag = "2")]
1597 pub node: ::core::option::Option<super::StreamNode>,
1598 #[prost(uint32, tag = "3")]
1600 pub fragment_type_mask: u32,
1601 #[prost(bool, tag = "4")]
1605 pub requires_singleton: bool,
1606 #[prost(uint32, tag = "5")]
1608 pub table_ids_cnt: u32,
1609 #[prost(uint32, repeated, tag = "6")]
1611 pub upstream_table_ids: ::prost::alloc::vec::Vec<u32>,
1612 }
1613 #[derive(prost_helpers::AnyPB)]
1614 #[derive(Clone, PartialEq, ::prost::Message)]
1615 pub struct StreamFragmentEdge {
1616 #[prost(message, optional, tag = "1")]
1618 pub dispatch_strategy: ::core::option::Option<super::DispatchStrategy>,
1619 #[prost(uint64, tag = "3")]
1623 pub link_id: u64,
1624 #[prost(uint32, tag = "4")]
1625 pub upstream_id: u32,
1626 #[prost(uint32, tag = "5")]
1627 pub downstream_id: u32,
1628 }
1629 #[derive(prost_helpers::AnyPB)]
1630 #[derive(Clone, Copy, PartialEq, ::prost::Message)]
1631 pub struct Parallelism {
1632 #[prost(uint64, tag = "1")]
1633 pub parallelism: u64,
1634 }
1635}
1636#[derive(prost_helpers::AnyPB)]
1637#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1638#[repr(i32)]
1639pub enum SinkLogStoreType {
1640 Unspecified = 0,
1642 KvLogStore = 1,
1643 InMemoryLogStore = 2,
1644}
1645impl SinkLogStoreType {
1646 pub fn as_str_name(&self) -> &'static str {
1651 match self {
1652 Self::Unspecified => "SINK_LOG_STORE_TYPE_UNSPECIFIED",
1653 Self::KvLogStore => "SINK_LOG_STORE_TYPE_KV_LOG_STORE",
1654 Self::InMemoryLogStore => "SINK_LOG_STORE_TYPE_IN_MEMORY_LOG_STORE",
1655 }
1656 }
1657 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1659 match value {
1660 "SINK_LOG_STORE_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
1661 "SINK_LOG_STORE_TYPE_KV_LOG_STORE" => Some(Self::KvLogStore),
1662 "SINK_LOG_STORE_TYPE_IN_MEMORY_LOG_STORE" => Some(Self::InMemoryLogStore),
1663 _ => None,
1664 }
1665 }
1666}
1667#[derive(prost_helpers::AnyPB)]
1668#[derive(prost_helpers::Version)]
1669#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1670#[repr(i32)]
1671pub enum AggNodeVersion {
1672 Unspecified = 0,
1673 Issue12140 = 1,
1675 Issue13465 = 2,
1677}
1678impl AggNodeVersion {
1679 pub fn as_str_name(&self) -> &'static str {
1684 match self {
1685 Self::Unspecified => "AGG_NODE_VERSION_UNSPECIFIED",
1686 Self::Issue12140 => "AGG_NODE_VERSION_ISSUE_12140",
1687 Self::Issue13465 => "AGG_NODE_VERSION_ISSUE_13465",
1688 }
1689 }
1690 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1692 match value {
1693 "AGG_NODE_VERSION_UNSPECIFIED" => Some(Self::Unspecified),
1694 "AGG_NODE_VERSION_ISSUE_12140" => Some(Self::Issue12140),
1695 "AGG_NODE_VERSION_ISSUE_13465" => Some(Self::Issue13465),
1696 _ => None,
1697 }
1698 }
1699}
1700#[derive(prost_helpers::AnyPB)]
1702#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1703#[repr(i32)]
1704pub enum StreamScanType {
1705 Unspecified = 0,
1706 Chain = 1,
1708 Rearrange = 2,
1710 Backfill = 3,
1712 UpstreamOnly = 4,
1714 ArrangementBackfill = 5,
1716 SnapshotBackfill = 6,
1718 CrossDbSnapshotBackfill = 7,
1720}
1721impl StreamScanType {
1722 pub fn as_str_name(&self) -> &'static str {
1727 match self {
1728 Self::Unspecified => "STREAM_SCAN_TYPE_UNSPECIFIED",
1729 Self::Chain => "STREAM_SCAN_TYPE_CHAIN",
1730 Self::Rearrange => "STREAM_SCAN_TYPE_REARRANGE",
1731 Self::Backfill => "STREAM_SCAN_TYPE_BACKFILL",
1732 Self::UpstreamOnly => "STREAM_SCAN_TYPE_UPSTREAM_ONLY",
1733 Self::ArrangementBackfill => "STREAM_SCAN_TYPE_ARRANGEMENT_BACKFILL",
1734 Self::SnapshotBackfill => "STREAM_SCAN_TYPE_SNAPSHOT_BACKFILL",
1735 Self::CrossDbSnapshotBackfill => {
1736 "STREAM_SCAN_TYPE_CROSS_DB_SNAPSHOT_BACKFILL"
1737 }
1738 }
1739 }
1740 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1742 match value {
1743 "STREAM_SCAN_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
1744 "STREAM_SCAN_TYPE_CHAIN" => Some(Self::Chain),
1745 "STREAM_SCAN_TYPE_REARRANGE" => Some(Self::Rearrange),
1746 "STREAM_SCAN_TYPE_BACKFILL" => Some(Self::Backfill),
1747 "STREAM_SCAN_TYPE_UPSTREAM_ONLY" => Some(Self::UpstreamOnly),
1748 "STREAM_SCAN_TYPE_ARRANGEMENT_BACKFILL" => Some(Self::ArrangementBackfill),
1749 "STREAM_SCAN_TYPE_SNAPSHOT_BACKFILL" => Some(Self::SnapshotBackfill),
1750 "STREAM_SCAN_TYPE_CROSS_DB_SNAPSHOT_BACKFILL" => {
1751 Some(Self::CrossDbSnapshotBackfill)
1752 }
1753 _ => None,
1754 }
1755 }
1756}
1757#[derive(prost_helpers::AnyPB)]
1758#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1759#[repr(i32)]
1760pub enum OverWindowCachePolicy {
1761 Unspecified = 0,
1762 Full = 1,
1763 Recent = 2,
1764 RecentFirstN = 3,
1765 RecentLastN = 4,
1766}
1767impl OverWindowCachePolicy {
1768 pub fn as_str_name(&self) -> &'static str {
1773 match self {
1774 Self::Unspecified => "OVER_WINDOW_CACHE_POLICY_UNSPECIFIED",
1775 Self::Full => "OVER_WINDOW_CACHE_POLICY_FULL",
1776 Self::Recent => "OVER_WINDOW_CACHE_POLICY_RECENT",
1777 Self::RecentFirstN => "OVER_WINDOW_CACHE_POLICY_RECENT_FIRST_N",
1778 Self::RecentLastN => "OVER_WINDOW_CACHE_POLICY_RECENT_LAST_N",
1779 }
1780 }
1781 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1783 match value {
1784 "OVER_WINDOW_CACHE_POLICY_UNSPECIFIED" => Some(Self::Unspecified),
1785 "OVER_WINDOW_CACHE_POLICY_FULL" => Some(Self::Full),
1786 "OVER_WINDOW_CACHE_POLICY_RECENT" => Some(Self::Recent),
1787 "OVER_WINDOW_CACHE_POLICY_RECENT_FIRST_N" => Some(Self::RecentFirstN),
1788 "OVER_WINDOW_CACHE_POLICY_RECENT_LAST_N" => Some(Self::RecentLastN),
1789 _ => None,
1790 }
1791 }
1792}
1793#[derive(prost_helpers::AnyPB)]
1794#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1795#[repr(i32)]
1796pub enum DispatcherType {
1797 Unspecified = 0,
1798 Hash = 1,
1800 Broadcast = 2,
1805 Simple = 3,
1807 NoShuffle = 4,
1811}
1812impl DispatcherType {
1813 pub fn as_str_name(&self) -> &'static str {
1818 match self {
1819 Self::Unspecified => "DISPATCHER_TYPE_UNSPECIFIED",
1820 Self::Hash => "DISPATCHER_TYPE_HASH",
1821 Self::Broadcast => "DISPATCHER_TYPE_BROADCAST",
1822 Self::Simple => "DISPATCHER_TYPE_SIMPLE",
1823 Self::NoShuffle => "DISPATCHER_TYPE_NO_SHUFFLE",
1824 }
1825 }
1826 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1828 match value {
1829 "DISPATCHER_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
1830 "DISPATCHER_TYPE_HASH" => Some(Self::Hash),
1831 "DISPATCHER_TYPE_BROADCAST" => Some(Self::Broadcast),
1832 "DISPATCHER_TYPE_SIMPLE" => Some(Self::Simple),
1833 "DISPATCHER_TYPE_NO_SHUFFLE" => Some(Self::NoShuffle),
1834 _ => None,
1835 }
1836 }
1837}
1838#[derive(prost_helpers::AnyPB)]
1840#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1841#[repr(i32)]
1842pub enum FragmentTypeFlag {
1843 FragmentUnspecified = 0,
1844 Source = 1,
1845 Mview = 2,
1846 Sink = 4,
1847 Now = 8,
1849 StreamScan = 16,
1851 BarrierRecv = 32,
1852 Values = 64,
1853 Dml = 128,
1854 CdcFilter = 256,
1855 SourceScan = 1024,
1856 SnapshotBackfillStreamScan = 2048,
1857 FsFetch = 4096,
1859 CrossDbSnapshotBackfillStreamScan = 8192,
1860}
1861impl FragmentTypeFlag {
1862 pub fn as_str_name(&self) -> &'static str {
1867 match self {
1868 Self::FragmentUnspecified => "FRAGMENT_TYPE_FLAG_FRAGMENT_UNSPECIFIED",
1869 Self::Source => "FRAGMENT_TYPE_FLAG_SOURCE",
1870 Self::Mview => "FRAGMENT_TYPE_FLAG_MVIEW",
1871 Self::Sink => "FRAGMENT_TYPE_FLAG_SINK",
1872 Self::Now => "FRAGMENT_TYPE_FLAG_NOW",
1873 Self::StreamScan => "FRAGMENT_TYPE_FLAG_STREAM_SCAN",
1874 Self::BarrierRecv => "FRAGMENT_TYPE_FLAG_BARRIER_RECV",
1875 Self::Values => "FRAGMENT_TYPE_FLAG_VALUES",
1876 Self::Dml => "FRAGMENT_TYPE_FLAG_DML",
1877 Self::CdcFilter => "FRAGMENT_TYPE_FLAG_CDC_FILTER",
1878 Self::SourceScan => "FRAGMENT_TYPE_FLAG_SOURCE_SCAN",
1879 Self::SnapshotBackfillStreamScan => {
1880 "FRAGMENT_TYPE_FLAG_SNAPSHOT_BACKFILL_STREAM_SCAN"
1881 }
1882 Self::FsFetch => "FRAGMENT_TYPE_FLAG_FS_FETCH",
1883 Self::CrossDbSnapshotBackfillStreamScan => {
1884 "FRAGMENT_TYPE_FLAG_CROSS_DB_SNAPSHOT_BACKFILL_STREAM_SCAN"
1885 }
1886 }
1887 }
1888 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1890 match value {
1891 "FRAGMENT_TYPE_FLAG_FRAGMENT_UNSPECIFIED" => Some(Self::FragmentUnspecified),
1892 "FRAGMENT_TYPE_FLAG_SOURCE" => Some(Self::Source),
1893 "FRAGMENT_TYPE_FLAG_MVIEW" => Some(Self::Mview),
1894 "FRAGMENT_TYPE_FLAG_SINK" => Some(Self::Sink),
1895 "FRAGMENT_TYPE_FLAG_NOW" => Some(Self::Now),
1896 "FRAGMENT_TYPE_FLAG_STREAM_SCAN" => Some(Self::StreamScan),
1897 "FRAGMENT_TYPE_FLAG_BARRIER_RECV" => Some(Self::BarrierRecv),
1898 "FRAGMENT_TYPE_FLAG_VALUES" => Some(Self::Values),
1899 "FRAGMENT_TYPE_FLAG_DML" => Some(Self::Dml),
1900 "FRAGMENT_TYPE_FLAG_CDC_FILTER" => Some(Self::CdcFilter),
1901 "FRAGMENT_TYPE_FLAG_SOURCE_SCAN" => Some(Self::SourceScan),
1902 "FRAGMENT_TYPE_FLAG_SNAPSHOT_BACKFILL_STREAM_SCAN" => {
1903 Some(Self::SnapshotBackfillStreamScan)
1904 }
1905 "FRAGMENT_TYPE_FLAG_FS_FETCH" => Some(Self::FsFetch),
1906 "FRAGMENT_TYPE_FLAG_CROSS_DB_SNAPSHOT_BACKFILL_STREAM_SCAN" => {
1907 Some(Self::CrossDbSnapshotBackfillStreamScan)
1908 }
1909 _ => None,
1910 }
1911 }
1912}