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 #[prost(map = "uint32, message", tag = "7")]
33 pub actor_cdc_table_snapshot_splits: ::std::collections::HashMap<
34 u32,
35 super::source::CdcTableSnapshotSplits,
36 >,
37}
38#[derive(prost_helpers::AnyPB)]
39#[derive(Clone, PartialEq, ::prost::Message)]
40pub struct StopMutation {
41 #[prost(uint32, repeated, tag = "1")]
42 pub actors: ::prost::alloc::vec::Vec<u32>,
43}
44#[derive(prost_helpers::AnyPB)]
45#[derive(Clone, PartialEq, ::prost::Message)]
46pub struct UpdateMutation {
47 #[prost(message, repeated, tag = "1")]
49 pub dispatcher_update: ::prost::alloc::vec::Vec<update_mutation::DispatcherUpdate>,
50 #[prost(message, repeated, tag = "2")]
52 pub merge_update: ::prost::alloc::vec::Vec<update_mutation::MergeUpdate>,
53 #[prost(map = "uint32, message", tag = "3")]
55 pub actor_vnode_bitmap_update: ::std::collections::HashMap<
56 u32,
57 super::common::Buffer,
58 >,
59 #[prost(uint32, repeated, tag = "4")]
61 pub dropped_actors: ::prost::alloc::vec::Vec<u32>,
62 #[prost(map = "uint32, message", tag = "5")]
65 pub actor_splits: ::std::collections::HashMap<u32, super::source::ConnectorSplits>,
66 #[prost(map = "uint32, message", tag = "6")]
69 pub actor_new_dispatchers: ::std::collections::HashMap<u32, Dispatchers>,
70 #[prost(map = "uint32, message", tag = "7")]
72 pub actor_cdc_table_snapshot_splits: ::std::collections::HashMap<
73 u32,
74 super::source::CdcTableSnapshotSplits,
75 >,
76}
77pub mod update_mutation {
79 #[derive(prost_helpers::AnyPB)]
80 #[derive(Clone, PartialEq, ::prost::Message)]
81 pub struct DispatcherUpdate {
82 #[prost(uint32, tag = "1")]
84 pub actor_id: u32,
85 #[prost(uint64, tag = "2")]
86 pub dispatcher_id: u64,
87 #[prost(message, optional, tag = "3")]
90 pub hash_mapping: ::core::option::Option<super::ActorMapping>,
91 #[prost(uint32, repeated, tag = "4")]
93 pub added_downstream_actor_id: ::prost::alloc::vec::Vec<u32>,
94 #[prost(uint32, repeated, tag = "5")]
96 pub removed_downstream_actor_id: ::prost::alloc::vec::Vec<u32>,
97 }
98 #[derive(prost_helpers::AnyPB)]
99 #[derive(Clone, PartialEq, ::prost::Message)]
100 pub struct MergeUpdate {
101 #[prost(uint32, tag = "1")]
103 pub actor_id: u32,
104 #[prost(uint32, tag = "2")]
105 pub upstream_fragment_id: u32,
106 #[prost(uint32, optional, tag = "5")]
110 pub new_upstream_fragment_id: ::core::option::Option<u32>,
111 #[prost(message, repeated, tag = "3")]
113 pub added_upstream_actors: ::prost::alloc::vec::Vec<
114 super::super::common::ActorInfo,
115 >,
116 #[prost(uint32, repeated, tag = "4")]
119 pub removed_upstream_actor_id: ::prost::alloc::vec::Vec<u32>,
120 }
121}
122#[derive(prost_helpers::AnyPB)]
123#[derive(Clone, PartialEq, ::prost::Message)]
124pub struct SourceChangeSplitMutation {
125 #[prost(map = "uint32, message", tag = "2")]
127 pub actor_splits: ::std::collections::HashMap<u32, super::source::ConnectorSplits>,
128}
129#[derive(prost_helpers::AnyPB)]
130#[derive(Clone, Copy, PartialEq, ::prost::Message)]
131pub struct PauseMutation {}
132#[derive(prost_helpers::AnyPB)]
133#[derive(Clone, Copy, PartialEq, ::prost::Message)]
134pub struct ResumeMutation {}
135#[derive(prost_helpers::AnyPB)]
136#[derive(Clone, PartialEq, ::prost::Message)]
137pub struct ThrottleMutation {
138 #[prost(map = "uint32, message", tag = "1")]
139 pub actor_throttle: ::std::collections::HashMap<u32, throttle_mutation::RateLimit>,
140}
141pub mod throttle_mutation {
143 #[derive(prost_helpers::AnyPB)]
144 #[derive(Clone, Copy, PartialEq, ::prost::Message)]
145 pub struct RateLimit {
146 #[prost(uint32, optional, tag = "1")]
147 pub rate_limit: ::core::option::Option<u32>,
148 }
149}
150#[derive(prost_helpers::AnyPB)]
151#[derive(Clone, PartialEq, ::prost::Message)]
152pub struct CombinedMutation {
153 #[prost(message, repeated, tag = "1")]
154 pub mutations: ::prost::alloc::vec::Vec<BarrierMutation>,
155}
156#[derive(prost_helpers::AnyPB)]
157#[derive(Clone, Copy, PartialEq, ::prost::Message)]
158pub struct SubscriptionUpstreamInfo {
159 #[prost(uint32, tag = "1")]
161 pub subscriber_id: u32,
162 #[prost(uint32, tag = "2")]
163 pub upstream_mv_table_id: u32,
164}
165#[derive(prost_helpers::AnyPB)]
166#[derive(Clone, PartialEq, ::prost::Message)]
167pub struct DropSubscriptionsMutation {
168 #[prost(message, repeated, tag = "1")]
169 pub info: ::prost::alloc::vec::Vec<SubscriptionUpstreamInfo>,
170}
171#[derive(prost_helpers::AnyPB)]
172#[derive(Clone, PartialEq, ::prost::Message)]
173pub struct ConnectorPropsChangeMutation {
174 #[prost(map = "uint32, message", tag = "1")]
175 pub connector_props_infos: ::std::collections::HashMap<
176 u32,
177 connector_props_change_mutation::ConnectorPropsInfo,
178 >,
179}
180pub mod connector_props_change_mutation {
182 #[derive(prost_helpers::AnyPB)]
183 #[derive(Clone, PartialEq, ::prost::Message)]
184 pub struct ConnectorPropsInfo {
185 #[prost(map = "string, string", tag = "1")]
186 pub connector_props_info: ::std::collections::HashMap<
187 ::prost::alloc::string::String,
188 ::prost::alloc::string::String,
189 >,
190 }
191}
192#[derive(prost_helpers::AnyPB)]
193#[derive(Clone, PartialEq, ::prost::Message)]
194pub struct StartFragmentBackfillMutation {
195 #[prost(uint32, repeated, tag = "1")]
196 pub fragment_ids: ::prost::alloc::vec::Vec<u32>,
197}
198#[derive(prost_helpers::AnyPB)]
199#[derive(Clone, Copy, PartialEq, ::prost::Message)]
200pub struct RefreshStartMutation {
201 #[prost(uint32, tag = "1")]
203 pub table_id: u32,
204 #[prost(uint32, tag = "2")]
206 pub associated_source_id: u32,
207}
208#[derive(prost_helpers::AnyPB)]
209#[derive(Clone, Copy, PartialEq, ::prost::Message)]
210pub struct LoadFinishMutation {
211 #[prost(uint32, tag = "1")]
213 pub associated_source_id: u32,
214}
215#[derive(prost_helpers::AnyPB)]
216#[derive(Clone, PartialEq, ::prost::Message)]
217pub struct BarrierMutation {
218 #[prost(
219 oneof = "barrier_mutation::Mutation",
220 tags = "3, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16, 100"
221 )]
222 pub mutation: ::core::option::Option<barrier_mutation::Mutation>,
223}
224pub mod barrier_mutation {
226 #[derive(prost_helpers::AnyPB)]
227 #[derive(Clone, PartialEq, ::prost::Oneof)]
228 pub enum Mutation {
229 #[prost(message, tag = "3")]
231 Add(super::AddMutation),
232 #[prost(message, tag = "4")]
235 Stop(super::StopMutation),
236 #[prost(message, tag = "5")]
238 Update(super::UpdateMutation),
239 #[prost(message, tag = "6")]
241 Splits(super::SourceChangeSplitMutation),
242 #[prost(message, tag = "7")]
244 Pause(super::PauseMutation),
245 #[prost(message, tag = "8")]
247 Resume(super::ResumeMutation),
248 #[prost(message, tag = "10")]
250 Throttle(super::ThrottleMutation),
251 #[prost(message, tag = "12")]
253 DropSubscriptions(super::DropSubscriptionsMutation),
254 #[prost(message, tag = "13")]
256 ConnectorPropsChange(super::ConnectorPropsChangeMutation),
257 #[prost(message, tag = "14")]
263 StartFragmentBackfill(super::StartFragmentBackfillMutation),
264 #[prost(message, tag = "15")]
266 RefreshStart(super::RefreshStartMutation),
267 #[prost(message, tag = "16")]
269 LoadFinish(super::LoadFinishMutation),
270 #[prost(message, tag = "100")]
273 Combined(super::CombinedMutation),
274 }
275}
276#[derive(prost_helpers::AnyPB)]
277#[derive(Clone, PartialEq, ::prost::Message)]
278pub struct Barrier {
279 #[prost(message, optional, tag = "1")]
280 pub epoch: ::core::option::Option<super::data::Epoch>,
281 #[prost(message, optional, tag = "3")]
282 pub mutation: ::core::option::Option<BarrierMutation>,
283 #[prost(map = "string, string", tag = "2")]
285 pub tracing_context: ::std::collections::HashMap<
286 ::prost::alloc::string::String,
287 ::prost::alloc::string::String,
288 >,
289 #[prost(enumeration = "barrier::BarrierKind", tag = "9")]
291 pub kind: i32,
292 #[prost(uint32, repeated, tag = "255")]
294 pub passed_actors: ::prost::alloc::vec::Vec<u32>,
295}
296pub mod barrier {
298 #[derive(prost_helpers::AnyPB)]
299 #[derive(::enum_as_inner::EnumAsInner)]
300 #[derive(
301 Clone,
302 Copy,
303 Debug,
304 PartialEq,
305 Eq,
306 Hash,
307 PartialOrd,
308 Ord,
309 ::prost::Enumeration
310 )]
311 #[repr(i32)]
312 pub enum BarrierKind {
313 Unspecified = 0,
314 Initial = 1,
317 Barrier = 2,
319 Checkpoint = 3,
321 }
322 impl BarrierKind {
323 pub fn as_str_name(&self) -> &'static str {
328 match self {
329 Self::Unspecified => "BARRIER_KIND_UNSPECIFIED",
330 Self::Initial => "BARRIER_KIND_INITIAL",
331 Self::Barrier => "BARRIER_KIND_BARRIER",
332 Self::Checkpoint => "BARRIER_KIND_CHECKPOINT",
333 }
334 }
335 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
337 match value {
338 "BARRIER_KIND_UNSPECIFIED" => Some(Self::Unspecified),
339 "BARRIER_KIND_INITIAL" => Some(Self::Initial),
340 "BARRIER_KIND_BARRIER" => Some(Self::Barrier),
341 "BARRIER_KIND_CHECKPOINT" => Some(Self::Checkpoint),
342 _ => None,
343 }
344 }
345 }
346}
347#[derive(prost_helpers::AnyPB)]
348#[derive(Clone, PartialEq, ::prost::Message)]
349pub struct Watermark {
350 #[prost(message, optional, tag = "1")]
352 pub column: ::core::option::Option<super::expr::InputRef>,
353 #[prost(message, optional, tag = "3")]
355 pub val: ::core::option::Option<super::data::Datum>,
356}
357#[derive(prost_helpers::AnyPB)]
358#[derive(Clone, PartialEq, ::prost::Message)]
359pub struct StreamMessage {
360 #[prost(oneof = "stream_message::StreamMessage", tags = "1, 2, 3")]
361 pub stream_message: ::core::option::Option<stream_message::StreamMessage>,
362}
363pub mod stream_message {
365 #[derive(prost_helpers::AnyPB)]
366 #[derive(Clone, PartialEq, ::prost::Oneof)]
367 pub enum StreamMessage {
368 #[prost(message, tag = "1")]
369 StreamChunk(super::super::data::StreamChunk),
370 #[prost(message, tag = "2")]
371 Barrier(super::Barrier),
372 #[prost(message, tag = "3")]
373 Watermark(super::Watermark),
374 }
375}
376#[derive(prost_helpers::AnyPB)]
377#[derive(Clone, PartialEq, ::prost::Message)]
378pub struct StreamMessageBatch {
379 #[prost(oneof = "stream_message_batch::StreamMessageBatch", tags = "1, 2, 3")]
380 pub stream_message_batch: ::core::option::Option<
381 stream_message_batch::StreamMessageBatch,
382 >,
383}
384pub mod stream_message_batch {
386 #[derive(prost_helpers::AnyPB)]
387 #[derive(Clone, PartialEq, ::prost::Message)]
388 pub struct BarrierBatch {
389 #[prost(message, repeated, tag = "1")]
390 pub barriers: ::prost::alloc::vec::Vec<super::Barrier>,
391 }
392 #[derive(prost_helpers::AnyPB)]
393 #[derive(Clone, PartialEq, ::prost::Oneof)]
394 pub enum StreamMessageBatch {
395 #[prost(message, tag = "1")]
396 StreamChunk(super::super::data::StreamChunk),
397 #[prost(message, tag = "2")]
398 BarrierBatch(BarrierBatch),
399 #[prost(message, tag = "3")]
400 Watermark(super::Watermark),
401 }
402}
403#[derive(prost_helpers::AnyPB)]
405#[derive(Clone, PartialEq, ::prost::Message)]
406pub struct ActorMapping {
407 #[prost(uint32, repeated, tag = "1")]
408 pub original_indices: ::prost::alloc::vec::Vec<u32>,
409 #[prost(uint32, repeated, tag = "2")]
410 pub data: ::prost::alloc::vec::Vec<u32>,
411}
412#[derive(prost_helpers::AnyPB)]
413#[derive(Clone, PartialEq, ::prost::Message)]
414pub struct StreamSource {
415 #[prost(uint32, tag = "1")]
416 pub source_id: u32,
417 #[prost(message, optional, tag = "2")]
418 pub state_table: ::core::option::Option<super::catalog::Table>,
419 #[prost(uint32, optional, tag = "3")]
420 pub row_id_index: ::core::option::Option<u32>,
421 #[prost(message, repeated, tag = "4")]
422 pub columns: ::prost::alloc::vec::Vec<super::plan_common::ColumnCatalog>,
423 #[prost(btree_map = "string, string", tag = "6")]
424 pub with_properties: ::prost::alloc::collections::BTreeMap<
425 ::prost::alloc::string::String,
426 ::prost::alloc::string::String,
427 >,
428 #[prost(message, optional, tag = "7")]
429 pub info: ::core::option::Option<super::catalog::StreamSourceInfo>,
430 #[prost(string, tag = "8")]
431 pub source_name: ::prost::alloc::string::String,
432 #[prost(uint32, optional, tag = "9")]
434 pub rate_limit: ::core::option::Option<u32>,
435 #[prost(btree_map = "string, message", tag = "10")]
436 pub secret_refs: ::prost::alloc::collections::BTreeMap<
437 ::prost::alloc::string::String,
438 super::secret::SecretRef,
439 >,
440}
441#[derive(prost_helpers::AnyPB)]
443#[derive(Clone, PartialEq, ::prost::Message)]
444pub struct StreamFsFetch {
445 #[prost(uint32, tag = "1")]
446 pub source_id: u32,
447 #[prost(message, optional, tag = "2")]
448 pub state_table: ::core::option::Option<super::catalog::Table>,
449 #[prost(uint32, optional, tag = "3")]
450 pub row_id_index: ::core::option::Option<u32>,
451 #[prost(message, repeated, tag = "4")]
452 pub columns: ::prost::alloc::vec::Vec<super::plan_common::ColumnCatalog>,
453 #[prost(btree_map = "string, string", tag = "6")]
454 pub with_properties: ::prost::alloc::collections::BTreeMap<
455 ::prost::alloc::string::String,
456 ::prost::alloc::string::String,
457 >,
458 #[prost(message, optional, tag = "7")]
459 pub info: ::core::option::Option<super::catalog::StreamSourceInfo>,
460 #[prost(string, tag = "8")]
461 pub source_name: ::prost::alloc::string::String,
462 #[prost(uint32, optional, tag = "9")]
464 pub rate_limit: ::core::option::Option<u32>,
465 #[prost(btree_map = "string, message", tag = "10")]
466 pub secret_refs: ::prost::alloc::collections::BTreeMap<
467 ::prost::alloc::string::String,
468 super::secret::SecretRef,
469 >,
470}
471#[derive(prost_helpers::AnyPB)]
474#[derive(Clone, Copy, PartialEq, ::prost::Message)]
475pub struct BarrierRecvNode {}
476#[derive(prost_helpers::AnyPB)]
477#[derive(Clone, PartialEq, ::prost::Message)]
478pub struct SourceNode {
479 #[prost(message, optional, tag = "1")]
482 pub source_inner: ::core::option::Option<StreamSource>,
483}
484#[derive(prost_helpers::AnyPB)]
485#[derive(Clone, PartialEq, ::prost::Message)]
486pub struct StreamFsFetchNode {
487 #[prost(message, optional, tag = "1")]
488 pub node_inner: ::core::option::Option<StreamFsFetch>,
489}
490#[derive(prost_helpers::AnyPB)]
493#[derive(Clone, PartialEq, ::prost::Message)]
494pub struct SourceBackfillNode {
495 #[prost(uint32, tag = "1")]
496 pub upstream_source_id: u32,
497 #[prost(uint32, optional, tag = "2")]
498 pub row_id_index: ::core::option::Option<u32>,
499 #[prost(message, repeated, tag = "3")]
500 pub columns: ::prost::alloc::vec::Vec<super::plan_common::ColumnCatalog>,
501 #[prost(message, optional, tag = "4")]
502 pub info: ::core::option::Option<super::catalog::StreamSourceInfo>,
503 #[prost(string, tag = "5")]
504 pub source_name: ::prost::alloc::string::String,
505 #[prost(btree_map = "string, string", tag = "6")]
506 pub with_properties: ::prost::alloc::collections::BTreeMap<
507 ::prost::alloc::string::String,
508 ::prost::alloc::string::String,
509 >,
510 #[prost(uint32, optional, tag = "7")]
512 pub rate_limit: ::core::option::Option<u32>,
513 #[prost(message, optional, tag = "8")]
515 pub state_table: ::core::option::Option<super::catalog::Table>,
516 #[prost(btree_map = "string, message", tag = "9")]
517 pub secret_refs: ::prost::alloc::collections::BTreeMap<
518 ::prost::alloc::string::String,
519 super::secret::SecretRef,
520 >,
521}
522#[derive(prost_helpers::AnyPB)]
523#[derive(Clone, PartialEq, ::prost::Message)]
524pub struct SinkDesc {
525 #[prost(uint32, tag = "1")]
526 pub id: u32,
527 #[prost(string, tag = "2")]
528 pub name: ::prost::alloc::string::String,
529 #[prost(string, tag = "3")]
530 pub definition: ::prost::alloc::string::String,
531 #[prost(message, repeated, tag = "5")]
532 pub plan_pk: ::prost::alloc::vec::Vec<super::common::ColumnOrder>,
533 #[prost(uint32, repeated, tag = "6")]
534 pub downstream_pk: ::prost::alloc::vec::Vec<u32>,
535 #[prost(uint32, repeated, tag = "7")]
536 pub distribution_key: ::prost::alloc::vec::Vec<u32>,
537 #[prost(btree_map = "string, string", tag = "8")]
538 pub properties: ::prost::alloc::collections::BTreeMap<
539 ::prost::alloc::string::String,
540 ::prost::alloc::string::String,
541 >,
542 #[prost(enumeration = "super::catalog::SinkType", tag = "9")]
544 pub sink_type: i32,
545 #[prost(message, repeated, tag = "10")]
546 pub column_catalogs: ::prost::alloc::vec::Vec<super::plan_common::ColumnCatalog>,
547 #[prost(string, tag = "11")]
548 pub db_name: ::prost::alloc::string::String,
549 #[prost(string, tag = "12")]
552 pub sink_from_name: ::prost::alloc::string::String,
553 #[prost(message, optional, tag = "13")]
554 pub format_desc: ::core::option::Option<super::catalog::SinkFormatDesc>,
555 #[prost(uint32, optional, tag = "14")]
556 pub target_table: ::core::option::Option<u32>,
557 #[prost(uint64, optional, tag = "15")]
558 pub extra_partition_col_idx: ::core::option::Option<u64>,
559 #[prost(btree_map = "string, message", tag = "16")]
560 pub secret_refs: ::prost::alloc::collections::BTreeMap<
561 ::prost::alloc::string::String,
562 super::secret::SecretRef,
563 >,
564}
565#[derive(prost_helpers::AnyPB)]
566#[derive(Clone, PartialEq, ::prost::Message)]
567pub struct SinkNode {
568 #[prost(message, optional, tag = "1")]
569 pub sink_desc: ::core::option::Option<SinkDesc>,
570 #[prost(message, optional, tag = "2")]
572 pub table: ::core::option::Option<super::catalog::Table>,
573 #[prost(enumeration = "SinkLogStoreType", tag = "3")]
574 pub log_store_type: i32,
575 #[prost(uint32, optional, tag = "4")]
576 pub rate_limit: ::core::option::Option<u32>,
577}
578#[derive(prost_helpers::AnyPB)]
579#[derive(Clone, PartialEq, ::prost::Message)]
580pub struct ProjectNode {
581 #[prost(message, repeated, tag = "1")]
582 pub select_list: ::prost::alloc::vec::Vec<super::expr::ExprNode>,
583 #[prost(uint32, repeated, tag = "2")]
587 pub watermark_input_cols: ::prost::alloc::vec::Vec<u32>,
588 #[prost(uint32, repeated, tag = "3")]
589 pub watermark_output_cols: ::prost::alloc::vec::Vec<u32>,
590 #[prost(uint32, repeated, tag = "4")]
591 pub nondecreasing_exprs: ::prost::alloc::vec::Vec<u32>,
592 #[prost(bool, tag = "5")]
595 pub noop_update_hint: bool,
596}
597#[derive(prost_helpers::AnyPB)]
598#[derive(Clone, PartialEq, ::prost::Message)]
599pub struct FilterNode {
600 #[prost(message, optional, tag = "1")]
601 pub search_condition: ::core::option::Option<super::expr::ExprNode>,
602}
603#[derive(prost_helpers::AnyPB)]
604#[derive(Clone, Copy, PartialEq, ::prost::Message)]
605pub struct ChangeLogNode {
606 #[prost(bool, tag = "1")]
608 pub need_op: bool,
609}
610#[derive(prost_helpers::AnyPB)]
611#[derive(Clone, PartialEq, ::prost::Message)]
612pub struct CdcFilterNode {
613 #[prost(message, optional, tag = "1")]
614 pub search_condition: ::core::option::Option<super::expr::ExprNode>,
615 #[prost(uint32, tag = "2")]
616 pub upstream_source_id: u32,
617}
618#[derive(prost_helpers::AnyPB)]
626#[derive(Clone, PartialEq, ::prost::Message)]
627pub struct MaterializeNode {
628 #[prost(uint32, tag = "1")]
629 pub table_id: u32,
630 #[prost(message, repeated, tag = "2")]
632 pub column_orders: ::prost::alloc::vec::Vec<super::common::ColumnOrder>,
633 #[prost(message, optional, tag = "3")]
635 pub table: ::core::option::Option<super::catalog::Table>,
636}
637#[derive(prost_helpers::AnyPB)]
638#[derive(Clone, PartialEq, ::prost::Message)]
639pub struct AggCallState {
640 #[prost(oneof = "agg_call_state::Inner", tags = "1, 3")]
641 pub inner: ::core::option::Option<agg_call_state::Inner>,
642}
643pub mod agg_call_state {
645 #[derive(prost_helpers::AnyPB)]
647 #[derive(Clone, Copy, PartialEq, ::prost::Message)]
648 pub struct ValueState {}
649 #[derive(prost_helpers::AnyPB)]
651 #[derive(Clone, PartialEq, ::prost::Message)]
652 pub struct MaterializedInputState {
653 #[prost(message, optional, tag = "1")]
654 pub table: ::core::option::Option<super::super::catalog::Table>,
655 #[prost(uint32, repeated, tag = "2")]
657 pub included_upstream_indices: ::prost::alloc::vec::Vec<u32>,
658 #[prost(uint32, repeated, tag = "3")]
659 pub table_value_indices: ::prost::alloc::vec::Vec<u32>,
660 #[prost(message, repeated, tag = "4")]
661 pub order_columns: ::prost::alloc::vec::Vec<super::super::common::ColumnOrder>,
662 }
663 #[derive(prost_helpers::AnyPB)]
664 #[derive(Clone, PartialEq, ::prost::Oneof)]
665 pub enum Inner {
666 #[prost(message, tag = "1")]
667 ValueState(ValueState),
668 #[prost(message, tag = "3")]
669 MaterializedInputState(MaterializedInputState),
670 }
671}
672#[derive(prost_helpers::AnyPB)]
673#[derive(Clone, PartialEq, ::prost::Message)]
674pub struct SimpleAggNode {
675 #[prost(message, repeated, tag = "1")]
676 pub agg_calls: ::prost::alloc::vec::Vec<super::expr::AggCall>,
677 #[prost(message, repeated, tag = "3")]
678 pub agg_call_states: ::prost::alloc::vec::Vec<AggCallState>,
679 #[prost(message, optional, tag = "4")]
680 pub intermediate_state_table: ::core::option::Option<super::catalog::Table>,
681 #[prost(bool, tag = "5")]
684 pub is_append_only: bool,
685 #[prost(map = "uint32, message", tag = "6")]
686 pub distinct_dedup_tables: ::std::collections::HashMap<u32, super::catalog::Table>,
687 #[prost(uint32, tag = "7")]
688 pub row_count_index: u32,
689 #[prost(enumeration = "AggNodeVersion", tag = "8")]
690 pub version: i32,
691 #[prost(bool, tag = "9")]
694 pub must_output_per_barrier: bool,
695}
696#[derive(prost_helpers::AnyPB)]
697#[derive(Clone, PartialEq, ::prost::Message)]
698pub struct HashAggNode {
699 #[prost(uint32, repeated, tag = "1")]
700 pub group_key: ::prost::alloc::vec::Vec<u32>,
701 #[prost(message, repeated, tag = "2")]
702 pub agg_calls: ::prost::alloc::vec::Vec<super::expr::AggCall>,
703 #[prost(message, repeated, tag = "3")]
704 pub agg_call_states: ::prost::alloc::vec::Vec<AggCallState>,
705 #[prost(message, optional, tag = "4")]
706 pub intermediate_state_table: ::core::option::Option<super::catalog::Table>,
707 #[prost(bool, tag = "5")]
710 pub is_append_only: bool,
711 #[prost(map = "uint32, message", tag = "6")]
712 pub distinct_dedup_tables: ::std::collections::HashMap<u32, super::catalog::Table>,
713 #[prost(uint32, tag = "7")]
714 pub row_count_index: u32,
715 #[prost(bool, tag = "8")]
716 pub emit_on_window_close: bool,
717 #[prost(enumeration = "AggNodeVersion", tag = "9")]
718 pub version: i32,
719}
720#[derive(prost_helpers::AnyPB)]
721#[derive(Clone, PartialEq, ::prost::Message)]
722pub struct TopNNode {
723 #[prost(uint64, tag = "1")]
725 pub limit: u64,
726 #[prost(uint64, tag = "2")]
727 pub offset: u64,
728 #[prost(message, optional, tag = "3")]
729 pub table: ::core::option::Option<super::catalog::Table>,
730 #[prost(message, repeated, tag = "4")]
731 pub order_by: ::prost::alloc::vec::Vec<super::common::ColumnOrder>,
732 #[prost(bool, tag = "5")]
733 pub with_ties: bool,
734}
735#[derive(prost_helpers::AnyPB)]
736#[derive(Clone, PartialEq, ::prost::Message)]
737pub struct GroupTopNNode {
738 #[prost(uint64, tag = "1")]
740 pub limit: u64,
741 #[prost(uint64, tag = "2")]
742 pub offset: u64,
743 #[prost(uint32, repeated, tag = "3")]
744 pub group_key: ::prost::alloc::vec::Vec<u32>,
745 #[prost(message, optional, tag = "4")]
746 pub table: ::core::option::Option<super::catalog::Table>,
747 #[prost(message, repeated, tag = "5")]
748 pub order_by: ::prost::alloc::vec::Vec<super::common::ColumnOrder>,
749 #[prost(bool, tag = "6")]
750 pub with_ties: bool,
751}
752#[derive(prost_helpers::AnyPB)]
753#[derive(Clone, PartialEq, ::prost::Message)]
754pub struct DeltaExpression {
755 #[prost(enumeration = "super::expr::expr_node::Type", tag = "1")]
756 pub delta_type: i32,
757 #[prost(message, optional, tag = "2")]
758 pub delta: ::core::option::Option<super::expr::ExprNode>,
759}
760#[derive(prost_helpers::AnyPB)]
761#[derive(Clone, PartialEq, ::prost::Message)]
762pub struct InequalityPair {
763 #[prost(uint32, tag = "1")]
765 pub key_required_larger: u32,
766 #[prost(uint32, tag = "2")]
768 pub key_required_smaller: u32,
769 #[prost(bool, tag = "3")]
771 pub clean_state: bool,
772 #[prost(message, optional, tag = "4")]
774 pub delta_expression: ::core::option::Option<DeltaExpression>,
775}
776#[derive(prost_helpers::AnyPB)]
777#[derive(Clone, PartialEq, ::prost::Message)]
778pub struct HashJoinNode {
779 #[prost(enumeration = "super::plan_common::JoinType", tag = "1")]
780 pub join_type: i32,
781 #[prost(int32, repeated, tag = "2")]
782 pub left_key: ::prost::alloc::vec::Vec<i32>,
783 #[prost(int32, repeated, tag = "3")]
784 pub right_key: ::prost::alloc::vec::Vec<i32>,
785 #[prost(message, optional, tag = "4")]
786 pub condition: ::core::option::Option<super::expr::ExprNode>,
787 #[prost(message, repeated, tag = "5")]
788 pub inequality_pairs: ::prost::alloc::vec::Vec<InequalityPair>,
789 #[prost(message, optional, tag = "6")]
791 pub left_table: ::core::option::Option<super::catalog::Table>,
792 #[prost(message, optional, tag = "7")]
794 pub right_table: ::core::option::Option<super::catalog::Table>,
795 #[prost(message, optional, tag = "8")]
797 pub left_degree_table: ::core::option::Option<super::catalog::Table>,
798 #[prost(message, optional, tag = "9")]
800 pub right_degree_table: ::core::option::Option<super::catalog::Table>,
801 #[prost(uint32, repeated, tag = "10")]
803 pub output_indices: ::prost::alloc::vec::Vec<u32>,
804 #[prost(uint32, repeated, tag = "11")]
809 pub left_deduped_input_pk_indices: ::prost::alloc::vec::Vec<u32>,
810 #[prost(uint32, repeated, tag = "12")]
815 pub right_deduped_input_pk_indices: ::prost::alloc::vec::Vec<u32>,
816 #[prost(bool, repeated, tag = "13")]
817 pub null_safe: ::prost::alloc::vec::Vec<bool>,
818 #[prost(bool, tag = "14")]
821 pub is_append_only: bool,
822 #[prost(enumeration = "JoinEncodingType", tag = "15")]
824 pub join_encoding_type: i32,
825}
826#[derive(prost_helpers::AnyPB)]
827#[derive(Clone, PartialEq, ::prost::Message)]
828pub struct AsOfJoinNode {
829 #[prost(enumeration = "super::plan_common::AsOfJoinType", tag = "1")]
830 pub join_type: i32,
831 #[prost(int32, repeated, tag = "2")]
832 pub left_key: ::prost::alloc::vec::Vec<i32>,
833 #[prost(int32, repeated, tag = "3")]
834 pub right_key: ::prost::alloc::vec::Vec<i32>,
835 #[prost(message, optional, tag = "4")]
837 pub left_table: ::core::option::Option<super::catalog::Table>,
838 #[prost(message, optional, tag = "5")]
840 pub right_table: ::core::option::Option<super::catalog::Table>,
841 #[prost(uint32, repeated, tag = "6")]
843 pub output_indices: ::prost::alloc::vec::Vec<u32>,
844 #[prost(uint32, repeated, tag = "7")]
848 pub left_deduped_input_pk_indices: ::prost::alloc::vec::Vec<u32>,
849 #[prost(uint32, repeated, tag = "8")]
853 pub right_deduped_input_pk_indices: ::prost::alloc::vec::Vec<u32>,
854 #[prost(bool, repeated, tag = "9")]
855 pub null_safe: ::prost::alloc::vec::Vec<bool>,
856 #[prost(message, optional, tag = "10")]
857 pub asof_desc: ::core::option::Option<super::plan_common::AsOfJoinDesc>,
858 #[prost(enumeration = "JoinEncodingType", tag = "11")]
860 pub join_encoding_type: i32,
861}
862#[derive(prost_helpers::AnyPB)]
863#[derive(Clone, PartialEq, ::prost::Message)]
864pub struct TemporalJoinNode {
865 #[prost(enumeration = "super::plan_common::JoinType", tag = "1")]
866 pub join_type: i32,
867 #[prost(int32, repeated, tag = "2")]
868 pub left_key: ::prost::alloc::vec::Vec<i32>,
869 #[prost(int32, repeated, tag = "3")]
870 pub right_key: ::prost::alloc::vec::Vec<i32>,
871 #[prost(bool, repeated, tag = "4")]
872 pub null_safe: ::prost::alloc::vec::Vec<bool>,
873 #[prost(message, optional, tag = "5")]
874 pub condition: ::core::option::Option<super::expr::ExprNode>,
875 #[prost(uint32, repeated, tag = "6")]
877 pub output_indices: ::prost::alloc::vec::Vec<u32>,
878 #[prost(message, optional, tag = "7")]
880 pub table_desc: ::core::option::Option<super::plan_common::StorageTableDesc>,
881 #[prost(uint32, repeated, tag = "8")]
883 pub table_output_indices: ::prost::alloc::vec::Vec<u32>,
884 #[prost(message, optional, tag = "9")]
886 pub memo_table: ::core::option::Option<super::catalog::Table>,
887 #[prost(bool, tag = "10")]
889 pub is_nested_loop: bool,
890}
891#[derive(prost_helpers::AnyPB)]
892#[derive(Clone, PartialEq, ::prost::Message)]
893pub struct DynamicFilterNode {
894 #[prost(uint32, tag = "1")]
895 pub left_key: u32,
896 #[prost(message, optional, tag = "2")]
898 pub condition: ::core::option::Option<super::expr::ExprNode>,
899 #[prost(message, optional, tag = "3")]
901 pub left_table: ::core::option::Option<super::catalog::Table>,
902 #[prost(message, optional, tag = "4")]
904 pub right_table: ::core::option::Option<super::catalog::Table>,
905 #[deprecated]
912 #[prost(bool, tag = "5")]
913 pub condition_always_relax: bool,
914}
915#[derive(prost_helpers::AnyPB)]
918#[derive(Clone, PartialEq, ::prost::Message)]
919pub struct DeltaIndexJoinNode {
920 #[prost(enumeration = "super::plan_common::JoinType", tag = "1")]
921 pub join_type: i32,
922 #[prost(int32, repeated, tag = "2")]
923 pub left_key: ::prost::alloc::vec::Vec<i32>,
924 #[prost(int32, repeated, tag = "3")]
925 pub right_key: ::prost::alloc::vec::Vec<i32>,
926 #[prost(message, optional, tag = "4")]
927 pub condition: ::core::option::Option<super::expr::ExprNode>,
928 #[prost(uint32, tag = "7")]
930 pub left_table_id: u32,
931 #[prost(uint32, tag = "8")]
933 pub right_table_id: u32,
934 #[prost(message, optional, tag = "9")]
936 pub left_info: ::core::option::Option<ArrangementInfo>,
937 #[prost(message, optional, tag = "10")]
939 pub right_info: ::core::option::Option<ArrangementInfo>,
940 #[prost(uint32, repeated, tag = "11")]
942 pub output_indices: ::prost::alloc::vec::Vec<u32>,
943}
944#[derive(prost_helpers::AnyPB)]
945#[derive(Clone, PartialEq, ::prost::Message)]
946pub struct HopWindowNode {
947 #[prost(uint32, tag = "1")]
948 pub time_col: u32,
949 #[prost(message, optional, tag = "2")]
950 pub window_slide: ::core::option::Option<super::data::Interval>,
951 #[prost(message, optional, tag = "3")]
952 pub window_size: ::core::option::Option<super::data::Interval>,
953 #[prost(uint32, repeated, tag = "4")]
954 pub output_indices: ::prost::alloc::vec::Vec<u32>,
955 #[prost(message, repeated, tag = "5")]
956 pub window_start_exprs: ::prost::alloc::vec::Vec<super::expr::ExprNode>,
957 #[prost(message, repeated, tag = "6")]
958 pub window_end_exprs: ::prost::alloc::vec::Vec<super::expr::ExprNode>,
959}
960#[derive(prost_helpers::AnyPB)]
961#[derive(Clone, PartialEq, ::prost::Message)]
962pub struct MergeNode {
963 #[deprecated]
970 #[prost(uint32, repeated, packed = "false", tag = "1")]
971 pub upstream_actor_id: ::prost::alloc::vec::Vec<u32>,
972 #[prost(uint32, tag = "2")]
973 pub upstream_fragment_id: u32,
974 #[prost(enumeration = "DispatcherType", tag = "3")]
977 pub upstream_dispatcher_type: i32,
978 #[deprecated]
980 #[prost(message, repeated, tag = "4")]
981 pub fields: ::prost::alloc::vec::Vec<super::plan_common::Field>,
982}
983#[derive(prost_helpers::AnyPB)]
986#[derive(Clone, PartialEq, ::prost::Message)]
987pub struct ExchangeNode {
988 #[prost(message, optional, tag = "1")]
989 pub strategy: ::core::option::Option<DispatchStrategy>,
990}
991#[derive(prost_helpers::AnyPB)]
996#[derive(Clone, PartialEq, ::prost::Message)]
997pub struct StreamScanNode {
998 #[prost(uint32, tag = "1")]
999 pub table_id: u32,
1000 #[prost(int32, repeated, tag = "2")]
1004 pub upstream_column_ids: ::prost::alloc::vec::Vec<i32>,
1005 #[prost(uint32, repeated, tag = "3")]
1009 pub output_indices: ::prost::alloc::vec::Vec<u32>,
1010 #[prost(enumeration = "StreamScanType", tag = "4")]
1015 pub stream_scan_type: i32,
1016 #[prost(message, optional, tag = "5")]
1018 pub state_table: ::core::option::Option<super::catalog::Table>,
1019 #[prost(message, optional, tag = "7")]
1022 pub table_desc: ::core::option::Option<super::plan_common::StorageTableDesc>,
1023 #[prost(uint32, optional, tag = "8")]
1025 pub rate_limit: ::core::option::Option<u32>,
1026 #[deprecated]
1028 #[prost(uint32, tag = "9")]
1029 pub snapshot_read_barrier_interval: u32,
1030 #[prost(message, optional, tag = "10")]
1033 pub arrangement_table: ::core::option::Option<super::catalog::Table>,
1034 #[prost(uint64, optional, tag = "11")]
1035 pub snapshot_backfill_epoch: ::core::option::Option<u64>,
1036}
1037#[derive(prost_helpers::AnyPB)]
1039#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1040pub struct StreamCdcScanOptions {
1041 #[prost(bool, tag = "1")]
1043 pub disable_backfill: bool,
1044 #[prost(uint32, tag = "2")]
1045 pub snapshot_barrier_interval: u32,
1046 #[prost(uint32, tag = "3")]
1047 pub snapshot_batch_size: u32,
1048 #[prost(uint32, tag = "4")]
1049 pub backfill_parallelism: u32,
1050 #[prost(uint64, tag = "5")]
1051 pub backfill_num_rows_per_split: u64,
1052 #[prost(bool, tag = "6")]
1053 pub backfill_as_even_splits: bool,
1054 #[prost(uint32, tag = "7")]
1055 pub backfill_split_pk_column_index: u32,
1056}
1057#[derive(prost_helpers::AnyPB)]
1058#[derive(Clone, PartialEq, ::prost::Message)]
1059pub struct StreamCdcScanNode {
1060 #[prost(uint32, tag = "1")]
1061 pub table_id: u32,
1062 #[prost(int32, repeated, tag = "2")]
1065 pub upstream_column_ids: ::prost::alloc::vec::Vec<i32>,
1066 #[prost(uint32, repeated, tag = "3")]
1068 pub output_indices: ::prost::alloc::vec::Vec<u32>,
1069 #[prost(message, optional, tag = "4")]
1071 pub state_table: ::core::option::Option<super::catalog::Table>,
1072 #[prost(message, optional, tag = "5")]
1074 pub cdc_table_desc: ::core::option::Option<super::plan_common::ExternalTableDesc>,
1075 #[prost(uint32, optional, tag = "6")]
1077 pub rate_limit: ::core::option::Option<u32>,
1078 #[prost(bool, tag = "7")]
1081 pub disable_backfill: bool,
1082 #[prost(message, optional, tag = "8")]
1083 pub options: ::core::option::Option<StreamCdcScanOptions>,
1084}
1085#[derive(prost_helpers::AnyPB)]
1089#[derive(Clone, PartialEq, ::prost::Message)]
1090pub struct BatchPlanNode {
1091 #[prost(message, optional, tag = "1")]
1092 pub table_desc: ::core::option::Option<super::plan_common::StorageTableDesc>,
1093 #[prost(int32, repeated, tag = "2")]
1094 pub column_ids: ::prost::alloc::vec::Vec<i32>,
1095}
1096#[derive(prost_helpers::AnyPB)]
1097#[derive(Clone, PartialEq, ::prost::Message)]
1098pub struct ArrangementInfo {
1099 #[prost(message, repeated, tag = "1")]
1102 pub arrange_key_orders: ::prost::alloc::vec::Vec<super::common::ColumnOrder>,
1103 #[prost(message, repeated, tag = "2")]
1105 pub column_descs: ::prost::alloc::vec::Vec<super::plan_common::ColumnDesc>,
1106 #[prost(message, optional, tag = "4")]
1108 pub table_desc: ::core::option::Option<super::plan_common::StorageTableDesc>,
1109 #[prost(uint32, repeated, tag = "5")]
1111 pub output_col_idx: ::prost::alloc::vec::Vec<u32>,
1112}
1113#[derive(prost_helpers::AnyPB)]
1116#[derive(Clone, PartialEq, ::prost::Message)]
1117pub struct ArrangeNode {
1118 #[prost(message, optional, tag = "1")]
1120 pub table_info: ::core::option::Option<ArrangementInfo>,
1121 #[prost(uint32, repeated, tag = "2")]
1123 pub distribution_key: ::prost::alloc::vec::Vec<u32>,
1124 #[prost(message, optional, tag = "3")]
1126 pub table: ::core::option::Option<super::catalog::Table>,
1127}
1128#[derive(prost_helpers::AnyPB)]
1130#[derive(Clone, PartialEq, ::prost::Message)]
1131pub struct LookupNode {
1132 #[prost(int32, repeated, tag = "1")]
1134 pub arrange_key: ::prost::alloc::vec::Vec<i32>,
1135 #[prost(int32, repeated, tag = "2")]
1137 pub stream_key: ::prost::alloc::vec::Vec<i32>,
1138 #[prost(bool, tag = "3")]
1140 pub use_current_epoch: bool,
1141 #[prost(int32, repeated, tag = "4")]
1145 pub column_mapping: ::prost::alloc::vec::Vec<i32>,
1146 #[prost(message, optional, tag = "7")]
1148 pub arrangement_table_info: ::core::option::Option<ArrangementInfo>,
1149 #[prost(oneof = "lookup_node::ArrangementTableId", tags = "5, 6")]
1150 pub arrangement_table_id: ::core::option::Option<lookup_node::ArrangementTableId>,
1151}
1152pub mod lookup_node {
1154 #[derive(prost_helpers::AnyPB)]
1155 #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
1156 pub enum ArrangementTableId {
1157 #[prost(uint32, tag = "5")]
1159 TableId(u32),
1160 #[prost(uint32, tag = "6")]
1162 IndexId(u32),
1163 }
1164}
1165#[derive(prost_helpers::AnyPB)]
1167#[derive(Clone, PartialEq, ::prost::Message)]
1168pub struct WatermarkFilterNode {
1169 #[prost(message, repeated, tag = "1")]
1171 pub watermark_descs: ::prost::alloc::vec::Vec<super::catalog::WatermarkDesc>,
1172 #[prost(message, repeated, tag = "2")]
1174 pub tables: ::prost::alloc::vec::Vec<super::catalog::Table>,
1175}
1176#[derive(prost_helpers::AnyPB)]
1178#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1179pub struct UnionNode {}
1180#[derive(prost_helpers::AnyPB)]
1182#[derive(Clone, PartialEq, ::prost::Message)]
1183pub struct LookupUnionNode {
1184 #[prost(uint32, repeated, tag = "1")]
1185 pub order: ::prost::alloc::vec::Vec<u32>,
1186}
1187#[derive(prost_helpers::AnyPB)]
1188#[derive(Clone, PartialEq, ::prost::Message)]
1189pub struct ExpandNode {
1190 #[prost(message, repeated, tag = "1")]
1191 pub column_subsets: ::prost::alloc::vec::Vec<expand_node::Subset>,
1192}
1193pub mod expand_node {
1195 #[derive(prost_helpers::AnyPB)]
1196 #[derive(Clone, PartialEq, ::prost::Message)]
1197 pub struct Subset {
1198 #[prost(uint32, repeated, tag = "1")]
1199 pub column_indices: ::prost::alloc::vec::Vec<u32>,
1200 }
1201}
1202#[derive(prost_helpers::AnyPB)]
1203#[derive(Clone, PartialEq, ::prost::Message)]
1204pub struct ProjectSetNode {
1205 #[prost(message, repeated, tag = "1")]
1206 pub select_list: ::prost::alloc::vec::Vec<super::expr::ProjectSetSelectItem>,
1207 #[prost(uint32, repeated, tag = "2")]
1211 pub watermark_input_cols: ::prost::alloc::vec::Vec<u32>,
1212 #[prost(uint32, repeated, tag = "3")]
1213 pub watermark_expr_indices: ::prost::alloc::vec::Vec<u32>,
1214 #[prost(uint32, repeated, tag = "4")]
1215 pub nondecreasing_exprs: ::prost::alloc::vec::Vec<u32>,
1216}
1217#[derive(prost_helpers::AnyPB)]
1219#[derive(Clone, PartialEq, ::prost::Message)]
1220pub struct SortNode {
1221 #[prost(message, optional, tag = "1")]
1223 pub state_table: ::core::option::Option<super::catalog::Table>,
1224 #[prost(uint32, tag = "2")]
1226 pub sort_column_index: u32,
1227}
1228#[derive(prost_helpers::AnyPB)]
1230#[derive(Clone, PartialEq, ::prost::Message)]
1231pub struct DmlNode {
1232 #[prost(uint32, tag = "1")]
1234 pub table_id: u32,
1235 #[prost(uint64, tag = "3")]
1237 pub table_version_id: u64,
1238 #[prost(message, repeated, tag = "2")]
1240 pub column_descs: ::prost::alloc::vec::Vec<super::plan_common::ColumnDesc>,
1241 #[prost(uint32, optional, tag = "4")]
1242 pub rate_limit: ::core::option::Option<u32>,
1243}
1244#[derive(prost_helpers::AnyPB)]
1245#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1246pub struct RowIdGenNode {
1247 #[prost(uint64, tag = "1")]
1248 pub row_id_index: u64,
1249}
1250#[derive(prost_helpers::AnyPB)]
1251#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1252pub struct NowModeUpdateCurrent {}
1253#[derive(prost_helpers::AnyPB)]
1254#[derive(Clone, PartialEq, ::prost::Message)]
1255pub struct NowModeGenerateSeries {
1256 #[prost(message, optional, tag = "1")]
1257 pub start_timestamp: ::core::option::Option<super::data::Datum>,
1258 #[prost(message, optional, tag = "2")]
1259 pub interval: ::core::option::Option<super::data::Datum>,
1260}
1261#[derive(prost_helpers::AnyPB)]
1262#[derive(Clone, PartialEq, ::prost::Message)]
1263pub struct NowNode {
1264 #[prost(message, optional, tag = "1")]
1266 pub state_table: ::core::option::Option<super::catalog::Table>,
1267 #[prost(oneof = "now_node::Mode", tags = "101, 102")]
1268 pub mode: ::core::option::Option<now_node::Mode>,
1269}
1270pub mod now_node {
1272 #[derive(prost_helpers::AnyPB)]
1273 #[derive(Clone, PartialEq, ::prost::Oneof)]
1274 pub enum Mode {
1275 #[prost(message, tag = "101")]
1276 UpdateCurrent(super::NowModeUpdateCurrent),
1277 #[prost(message, tag = "102")]
1278 GenerateSeries(super::NowModeGenerateSeries),
1279 }
1280}
1281#[derive(prost_helpers::AnyPB)]
1282#[derive(Clone, PartialEq, ::prost::Message)]
1283pub struct ValuesNode {
1284 #[prost(message, repeated, tag = "1")]
1285 pub tuples: ::prost::alloc::vec::Vec<values_node::ExprTuple>,
1286 #[prost(message, repeated, tag = "2")]
1287 pub fields: ::prost::alloc::vec::Vec<super::plan_common::Field>,
1288}
1289pub mod values_node {
1291 #[derive(prost_helpers::AnyPB)]
1292 #[derive(Clone, PartialEq, ::prost::Message)]
1293 pub struct ExprTuple {
1294 #[prost(message, repeated, tag = "1")]
1295 pub cells: ::prost::alloc::vec::Vec<super::super::expr::ExprNode>,
1296 }
1297}
1298#[derive(prost_helpers::AnyPB)]
1299#[derive(Clone, PartialEq, ::prost::Message)]
1300pub struct DedupNode {
1301 #[prost(message, optional, tag = "1")]
1302 pub state_table: ::core::option::Option<super::catalog::Table>,
1303 #[prost(uint32, repeated, tag = "2")]
1304 pub dedup_column_indices: ::prost::alloc::vec::Vec<u32>,
1305}
1306#[derive(prost_helpers::AnyPB)]
1307#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1308pub struct NoOpNode {}
1309#[derive(prost_helpers::AnyPB)]
1310#[derive(Clone, PartialEq, ::prost::Message)]
1311pub struct EowcOverWindowNode {
1312 #[prost(message, repeated, tag = "1")]
1313 pub calls: ::prost::alloc::vec::Vec<super::expr::WindowFunction>,
1314 #[prost(uint32, repeated, tag = "2")]
1315 pub partition_by: ::prost::alloc::vec::Vec<u32>,
1316 #[prost(message, repeated, tag = "3")]
1318 pub order_by: ::prost::alloc::vec::Vec<super::common::ColumnOrder>,
1319 #[prost(message, optional, tag = "4")]
1320 pub state_table: ::core::option::Option<super::catalog::Table>,
1321}
1322#[derive(prost_helpers::AnyPB)]
1323#[derive(Clone, PartialEq, ::prost::Message)]
1324pub struct OverWindowNode {
1325 #[prost(message, repeated, tag = "1")]
1326 pub calls: ::prost::alloc::vec::Vec<super::expr::WindowFunction>,
1327 #[prost(uint32, repeated, tag = "2")]
1328 pub partition_by: ::prost::alloc::vec::Vec<u32>,
1329 #[prost(message, repeated, tag = "3")]
1330 pub order_by: ::prost::alloc::vec::Vec<super::common::ColumnOrder>,
1331 #[prost(message, optional, tag = "4")]
1332 pub state_table: ::core::option::Option<super::catalog::Table>,
1333 #[prost(enumeration = "OverWindowCachePolicy", tag = "5")]
1334 pub cache_policy: i32,
1335}
1336#[derive(prost_helpers::AnyPB)]
1337#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1338pub struct LocalApproxPercentileNode {
1339 #[prost(double, tag = "1")]
1340 pub base: f64,
1341 #[prost(uint32, tag = "2")]
1342 pub percentile_index: u32,
1343}
1344#[derive(prost_helpers::AnyPB)]
1345#[derive(Clone, PartialEq, ::prost::Message)]
1346pub struct GlobalApproxPercentileNode {
1347 #[prost(double, tag = "1")]
1348 pub base: f64,
1349 #[prost(double, tag = "2")]
1350 pub quantile: f64,
1351 #[prost(message, optional, tag = "3")]
1352 pub bucket_state_table: ::core::option::Option<super::catalog::Table>,
1353 #[prost(message, optional, tag = "4")]
1354 pub count_state_table: ::core::option::Option<super::catalog::Table>,
1355}
1356#[derive(prost_helpers::AnyPB)]
1357#[derive(Clone, PartialEq, ::prost::Message)]
1358pub struct RowMergeNode {
1359 #[prost(message, optional, tag = "1")]
1360 pub lhs_mapping: ::core::option::Option<super::catalog::ColIndexMapping>,
1361 #[prost(message, optional, tag = "2")]
1362 pub rhs_mapping: ::core::option::Option<super::catalog::ColIndexMapping>,
1363}
1364#[derive(prost_helpers::AnyPB)]
1365#[derive(Clone, PartialEq, ::prost::Message)]
1366pub struct SyncLogStoreNode {
1367 #[prost(message, optional, tag = "1")]
1368 pub log_store_table: ::core::option::Option<super::catalog::Table>,
1369 #[prost(uint32, tag = "2")]
1370 pub pause_duration_ms: u32,
1371 #[prost(uint32, tag = "3")]
1372 pub buffer_size: u32,
1373 #[prost(bool, tag = "4")]
1374 pub aligned: bool,
1375}
1376#[derive(prost_helpers::AnyPB)]
1377#[derive(Clone, PartialEq, ::prost::Message)]
1378pub struct MaterializedExprsNode {
1379 #[prost(message, repeated, tag = "1")]
1380 pub exprs: ::prost::alloc::vec::Vec<super::expr::ExprNode>,
1381 #[prost(message, optional, tag = "2")]
1382 pub state_table: ::core::option::Option<super::catalog::Table>,
1383 #[prost(uint32, optional, tag = "3")]
1384 pub state_clean_col_idx: ::core::option::Option<u32>,
1385}
1386#[derive(prost_helpers::AnyPB)]
1387#[derive(Clone, PartialEq, ::prost::Message)]
1388pub struct VectorIndexWriteNode {
1389 #[prost(message, optional, tag = "1")]
1390 pub table: ::core::option::Option<super::catalog::Table>,
1391}
1392#[derive(prost_helpers::AnyPB)]
1393#[derive(Clone, PartialEq, ::prost::Message)]
1394pub struct StreamNode {
1395 #[prost(uint64, tag = "1")]
1398 pub operator_id: u64,
1399 #[prost(message, repeated, tag = "3")]
1401 pub input: ::prost::alloc::vec::Vec<StreamNode>,
1402 #[prost(uint32, repeated, tag = "2")]
1403 pub stream_key: ::prost::alloc::vec::Vec<u32>,
1404 #[prost(bool, tag = "24")]
1405 pub append_only: bool,
1406 #[prost(string, tag = "18")]
1407 pub identity: ::prost::alloc::string::String,
1408 #[prost(message, repeated, tag = "19")]
1410 pub fields: ::prost::alloc::vec::Vec<super::plan_common::Field>,
1411 #[prost(
1412 oneof = "stream_node::NodeBody",
1413 tags = "100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 142, 143, 144, 145, 146, 147, 148, 149, 150"
1414 )]
1415 pub node_body: ::core::option::Option<stream_node::NodeBody>,
1416}
1417pub mod stream_node {
1419 #[derive(prost_helpers::AnyPB)]
1420 #[derive(::enum_as_inner::EnumAsInner, ::strum::Display, ::strum::EnumDiscriminants)]
1421 #[strum_discriminants(derive(::strum::Display, Hash))]
1422 #[derive(Clone, PartialEq, ::prost::Oneof)]
1423 pub enum NodeBody {
1424 #[prost(message, tag = "100")]
1425 Source(::prost::alloc::boxed::Box<super::SourceNode>),
1426 #[prost(message, tag = "101")]
1427 Project(::prost::alloc::boxed::Box<super::ProjectNode>),
1428 #[prost(message, tag = "102")]
1429 Filter(::prost::alloc::boxed::Box<super::FilterNode>),
1430 #[prost(message, tag = "103")]
1431 Materialize(::prost::alloc::boxed::Box<super::MaterializeNode>),
1432 #[prost(message, tag = "104")]
1433 StatelessSimpleAgg(::prost::alloc::boxed::Box<super::SimpleAggNode>),
1434 #[prost(message, tag = "105")]
1435 SimpleAgg(::prost::alloc::boxed::Box<super::SimpleAggNode>),
1436 #[prost(message, tag = "106")]
1437 HashAgg(::prost::alloc::boxed::Box<super::HashAggNode>),
1438 #[prost(message, tag = "107")]
1439 AppendOnlyTopN(::prost::alloc::boxed::Box<super::TopNNode>),
1440 #[prost(message, tag = "108")]
1441 HashJoin(::prost::alloc::boxed::Box<super::HashJoinNode>),
1442 #[prost(message, tag = "109")]
1443 TopN(::prost::alloc::boxed::Box<super::TopNNode>),
1444 #[prost(message, tag = "110")]
1445 HopWindow(::prost::alloc::boxed::Box<super::HopWindowNode>),
1446 #[prost(message, tag = "111")]
1447 Merge(::prost::alloc::boxed::Box<super::MergeNode>),
1448 #[prost(message, tag = "112")]
1449 Exchange(::prost::alloc::boxed::Box<super::ExchangeNode>),
1450 #[prost(message, tag = "113")]
1451 StreamScan(::prost::alloc::boxed::Box<super::StreamScanNode>),
1452 #[prost(message, tag = "114")]
1453 BatchPlan(::prost::alloc::boxed::Box<super::BatchPlanNode>),
1454 #[prost(message, tag = "115")]
1455 Lookup(::prost::alloc::boxed::Box<super::LookupNode>),
1456 #[prost(message, tag = "116")]
1457 Arrange(::prost::alloc::boxed::Box<super::ArrangeNode>),
1458 #[prost(message, tag = "117")]
1459 LookupUnion(::prost::alloc::boxed::Box<super::LookupUnionNode>),
1460 #[prost(message, tag = "118")]
1461 Union(super::UnionNode),
1462 #[prost(message, tag = "119")]
1463 DeltaIndexJoin(::prost::alloc::boxed::Box<super::DeltaIndexJoinNode>),
1464 #[prost(message, tag = "120")]
1465 Sink(::prost::alloc::boxed::Box<super::SinkNode>),
1466 #[prost(message, tag = "121")]
1467 Expand(::prost::alloc::boxed::Box<super::ExpandNode>),
1468 #[prost(message, tag = "122")]
1469 DynamicFilter(::prost::alloc::boxed::Box<super::DynamicFilterNode>),
1470 #[prost(message, tag = "123")]
1471 ProjectSet(::prost::alloc::boxed::Box<super::ProjectSetNode>),
1472 #[prost(message, tag = "124")]
1473 GroupTopN(::prost::alloc::boxed::Box<super::GroupTopNNode>),
1474 #[prost(message, tag = "125")]
1475 Sort(::prost::alloc::boxed::Box<super::SortNode>),
1476 #[prost(message, tag = "126")]
1477 WatermarkFilter(::prost::alloc::boxed::Box<super::WatermarkFilterNode>),
1478 #[prost(message, tag = "127")]
1479 Dml(::prost::alloc::boxed::Box<super::DmlNode>),
1480 #[prost(message, tag = "128")]
1481 RowIdGen(::prost::alloc::boxed::Box<super::RowIdGenNode>),
1482 #[prost(message, tag = "129")]
1483 Now(::prost::alloc::boxed::Box<super::NowNode>),
1484 #[prost(message, tag = "130")]
1485 AppendOnlyGroupTopN(::prost::alloc::boxed::Box<super::GroupTopNNode>),
1486 #[prost(message, tag = "131")]
1487 TemporalJoin(::prost::alloc::boxed::Box<super::TemporalJoinNode>),
1488 #[prost(message, tag = "132")]
1489 BarrierRecv(::prost::alloc::boxed::Box<super::BarrierRecvNode>),
1490 #[prost(message, tag = "133")]
1491 Values(::prost::alloc::boxed::Box<super::ValuesNode>),
1492 #[prost(message, tag = "134")]
1493 AppendOnlyDedup(::prost::alloc::boxed::Box<super::DedupNode>),
1494 #[prost(message, tag = "135")]
1495 NoOp(super::NoOpNode),
1496 #[prost(message, tag = "136")]
1497 EowcOverWindow(::prost::alloc::boxed::Box<super::EowcOverWindowNode>),
1498 #[prost(message, tag = "137")]
1499 OverWindow(::prost::alloc::boxed::Box<super::OverWindowNode>),
1500 #[prost(message, tag = "138")]
1501 StreamFsFetch(::prost::alloc::boxed::Box<super::StreamFsFetchNode>),
1502 #[prost(message, tag = "139")]
1503 StreamCdcScan(::prost::alloc::boxed::Box<super::StreamCdcScanNode>),
1504 #[prost(message, tag = "140")]
1505 CdcFilter(::prost::alloc::boxed::Box<super::CdcFilterNode>),
1506 #[prost(message, tag = "142")]
1507 SourceBackfill(::prost::alloc::boxed::Box<super::SourceBackfillNode>),
1508 #[prost(message, tag = "143")]
1509 Changelog(::prost::alloc::boxed::Box<super::ChangeLogNode>),
1510 #[prost(message, tag = "144")]
1511 LocalApproxPercentile(
1512 ::prost::alloc::boxed::Box<super::LocalApproxPercentileNode>,
1513 ),
1514 #[prost(message, tag = "145")]
1515 GlobalApproxPercentile(
1516 ::prost::alloc::boxed::Box<super::GlobalApproxPercentileNode>,
1517 ),
1518 #[prost(message, tag = "146")]
1519 RowMerge(::prost::alloc::boxed::Box<super::RowMergeNode>),
1520 #[prost(message, tag = "147")]
1521 AsOfJoin(::prost::alloc::boxed::Box<super::AsOfJoinNode>),
1522 #[prost(message, tag = "148")]
1523 SyncLogStore(::prost::alloc::boxed::Box<super::SyncLogStoreNode>),
1524 #[prost(message, tag = "149")]
1525 MaterializedExprs(::prost::alloc::boxed::Box<super::MaterializedExprsNode>),
1526 #[prost(message, tag = "150")]
1527 VectorIndexWrite(::prost::alloc::boxed::Box<super::VectorIndexWriteNode>),
1528 }
1529}
1530#[derive(prost_helpers::AnyPB)]
1543#[derive(Clone, PartialEq, ::prost::Message)]
1544pub struct DispatchOutputMapping {
1545 #[prost(uint32, repeated, tag = "1")]
1547 pub indices: ::prost::alloc::vec::Vec<u32>,
1548 #[prost(message, repeated, tag = "2")]
1553 pub types: ::prost::alloc::vec::Vec<dispatch_output_mapping::TypePair>,
1554}
1555pub mod dispatch_output_mapping {
1557 #[derive(prost_helpers::AnyPB)]
1558 #[derive(Clone, PartialEq, ::prost::Message)]
1559 pub struct TypePair {
1560 #[prost(message, optional, tag = "1")]
1561 pub upstream: ::core::option::Option<super::super::data::DataType>,
1562 #[prost(message, optional, tag = "2")]
1563 pub downstream: ::core::option::Option<super::super::data::DataType>,
1564 }
1565}
1566#[derive(prost_helpers::AnyPB)]
1569#[derive(Clone, PartialEq, ::prost::Message)]
1570pub struct DispatchStrategy {
1571 #[prost(enumeration = "DispatcherType", tag = "1")]
1572 pub r#type: i32,
1573 #[prost(uint32, repeated, tag = "2")]
1574 pub dist_key_indices: ::prost::alloc::vec::Vec<u32>,
1575 #[prost(message, optional, tag = "3")]
1576 pub output_mapping: ::core::option::Option<DispatchOutputMapping>,
1577}
1578#[derive(prost_helpers::AnyPB)]
1581#[derive(Clone, PartialEq, ::prost::Message)]
1582pub struct Dispatcher {
1583 #[prost(enumeration = "DispatcherType", tag = "1")]
1584 pub r#type: i32,
1585 #[prost(uint32, repeated, tag = "2")]
1588 pub dist_key_indices: ::prost::alloc::vec::Vec<u32>,
1589 #[prost(message, optional, tag = "6")]
1591 pub output_mapping: ::core::option::Option<DispatchOutputMapping>,
1592 #[prost(message, optional, tag = "3")]
1595 pub hash_mapping: ::core::option::Option<ActorMapping>,
1596 #[prost(uint64, tag = "4")]
1599 pub dispatcher_id: u64,
1600 #[prost(uint32, repeated, tag = "5")]
1602 pub downstream_actor_id: ::prost::alloc::vec::Vec<u32>,
1603}
1604#[derive(prost_helpers::AnyPB)]
1606#[derive(Clone, PartialEq, ::prost::Message)]
1607pub struct StreamActor {
1608 #[prost(uint32, tag = "1")]
1609 pub actor_id: u32,
1610 #[prost(uint32, tag = "2")]
1611 pub fragment_id: u32,
1612 #[prost(message, repeated, tag = "4")]
1613 pub dispatcher: ::prost::alloc::vec::Vec<Dispatcher>,
1614 #[prost(message, optional, tag = "8")]
1617 pub vnode_bitmap: ::core::option::Option<super::common::Buffer>,
1618 #[prost(string, tag = "9")]
1620 pub mview_definition: ::prost::alloc::string::String,
1621 #[prost(message, optional, tag = "10")]
1623 pub expr_context: ::core::option::Option<super::plan_common::ExprContext>,
1624}
1625#[derive(prost_helpers::AnyPB)]
1627#[derive(Clone, PartialEq, ::prost::Message)]
1628pub struct StreamContext {
1629 #[prost(string, tag = "1")]
1631 pub timezone: ::prost::alloc::string::String,
1632}
1633#[derive(prost_helpers::AnyPB)]
1634#[derive(Clone, PartialEq, ::prost::Message)]
1635pub struct BackfillOrder {
1636 #[prost(map = "uint32, message", tag = "1")]
1637 pub order: ::std::collections::HashMap<u32, super::common::Uint32Vector>,
1638}
1639#[derive(prost_helpers::AnyPB)]
1644#[derive(Clone, PartialEq, ::prost::Message)]
1645pub struct StreamFragmentGraph {
1646 #[prost(map = "uint32, message", tag = "1")]
1648 pub fragments: ::std::collections::HashMap<
1649 u32,
1650 stream_fragment_graph::StreamFragment,
1651 >,
1652 #[prost(message, repeated, tag = "2")]
1654 pub edges: ::prost::alloc::vec::Vec<stream_fragment_graph::StreamFragmentEdge>,
1655 #[prost(uint32, repeated, tag = "3")]
1656 pub dependent_table_ids: ::prost::alloc::vec::Vec<u32>,
1657 #[prost(uint32, tag = "4")]
1658 pub table_ids_cnt: u32,
1659 #[prost(message, optional, tag = "5")]
1660 pub ctx: ::core::option::Option<StreamContext>,
1661 #[prost(message, optional, tag = "6")]
1663 pub parallelism: ::core::option::Option<stream_fragment_graph::Parallelism>,
1664 #[prost(uint32, tag = "7")]
1674 pub max_parallelism: u32,
1675 #[prost(message, optional, tag = "8")]
1677 pub backfill_order: ::core::option::Option<BackfillOrder>,
1678}
1679pub mod stream_fragment_graph {
1681 #[derive(prost_helpers::AnyPB)]
1682 #[derive(Clone, PartialEq, ::prost::Message)]
1683 pub struct StreamFragment {
1684 #[prost(uint32, tag = "1")]
1686 pub fragment_id: u32,
1687 #[prost(message, optional, tag = "2")]
1689 pub node: ::core::option::Option<super::StreamNode>,
1690 #[prost(uint32, tag = "3")]
1692 pub fragment_type_mask: u32,
1693 #[prost(bool, tag = "4")]
1697 pub requires_singleton: bool,
1698 #[prost(uint32, tag = "5")]
1700 pub table_ids_cnt: u32,
1701 #[prost(uint32, repeated, tag = "6")]
1703 pub upstream_table_ids: ::prost::alloc::vec::Vec<u32>,
1704 }
1705 #[derive(prost_helpers::AnyPB)]
1706 #[derive(Clone, PartialEq, ::prost::Message)]
1707 pub struct StreamFragmentEdge {
1708 #[prost(message, optional, tag = "1")]
1710 pub dispatch_strategy: ::core::option::Option<super::DispatchStrategy>,
1711 #[prost(uint64, tag = "3")]
1715 pub link_id: u64,
1716 #[prost(uint32, tag = "4")]
1717 pub upstream_id: u32,
1718 #[prost(uint32, tag = "5")]
1719 pub downstream_id: u32,
1720 }
1721 #[derive(prost_helpers::AnyPB)]
1722 #[derive(Clone, Copy, PartialEq, ::prost::Message)]
1723 pub struct Parallelism {
1724 #[prost(uint64, tag = "1")]
1725 pub parallelism: u64,
1726 }
1727}
1728#[derive(prost_helpers::AnyPB)]
1729#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1730#[repr(i32)]
1731pub enum SinkLogStoreType {
1732 Unspecified = 0,
1734 KvLogStore = 1,
1735 InMemoryLogStore = 2,
1736}
1737impl SinkLogStoreType {
1738 pub fn as_str_name(&self) -> &'static str {
1743 match self {
1744 Self::Unspecified => "SINK_LOG_STORE_TYPE_UNSPECIFIED",
1745 Self::KvLogStore => "SINK_LOG_STORE_TYPE_KV_LOG_STORE",
1746 Self::InMemoryLogStore => "SINK_LOG_STORE_TYPE_IN_MEMORY_LOG_STORE",
1747 }
1748 }
1749 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1751 match value {
1752 "SINK_LOG_STORE_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
1753 "SINK_LOG_STORE_TYPE_KV_LOG_STORE" => Some(Self::KvLogStore),
1754 "SINK_LOG_STORE_TYPE_IN_MEMORY_LOG_STORE" => Some(Self::InMemoryLogStore),
1755 _ => None,
1756 }
1757 }
1758}
1759#[derive(prost_helpers::AnyPB)]
1760#[derive(prost_helpers::Version)]
1761#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1762#[repr(i32)]
1763pub enum AggNodeVersion {
1764 Unspecified = 0,
1765 Issue12140 = 1,
1767 Issue13465 = 2,
1769}
1770impl AggNodeVersion {
1771 pub fn as_str_name(&self) -> &'static str {
1776 match self {
1777 Self::Unspecified => "AGG_NODE_VERSION_UNSPECIFIED",
1778 Self::Issue12140 => "AGG_NODE_VERSION_ISSUE_12140",
1779 Self::Issue13465 => "AGG_NODE_VERSION_ISSUE_13465",
1780 }
1781 }
1782 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1784 match value {
1785 "AGG_NODE_VERSION_UNSPECIFIED" => Some(Self::Unspecified),
1786 "AGG_NODE_VERSION_ISSUE_12140" => Some(Self::Issue12140),
1787 "AGG_NODE_VERSION_ISSUE_13465" => Some(Self::Issue13465),
1788 _ => None,
1789 }
1790 }
1791}
1792#[derive(prost_helpers::AnyPB)]
1793#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1794#[repr(i32)]
1795pub enum JoinEncodingType {
1796 Unspecified = 0,
1797 MemoryOptimized = 1,
1798 CpuOptimized = 2,
1799}
1800impl JoinEncodingType {
1801 pub fn as_str_name(&self) -> &'static str {
1806 match self {
1807 Self::Unspecified => "UNSPECIFIED",
1808 Self::MemoryOptimized => "MEMORY_OPTIMIZED",
1809 Self::CpuOptimized => "CPU_OPTIMIZED",
1810 }
1811 }
1812 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1814 match value {
1815 "UNSPECIFIED" => Some(Self::Unspecified),
1816 "MEMORY_OPTIMIZED" => Some(Self::MemoryOptimized),
1817 "CPU_OPTIMIZED" => Some(Self::CpuOptimized),
1818 _ => None,
1819 }
1820 }
1821}
1822#[derive(prost_helpers::AnyPB)]
1824#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1825#[repr(i32)]
1826pub enum StreamScanType {
1827 Unspecified = 0,
1828 Chain = 1,
1830 Rearrange = 2,
1832 Backfill = 3,
1834 UpstreamOnly = 4,
1836 ArrangementBackfill = 5,
1838 SnapshotBackfill = 6,
1840 CrossDbSnapshotBackfill = 7,
1842}
1843impl StreamScanType {
1844 pub fn as_str_name(&self) -> &'static str {
1849 match self {
1850 Self::Unspecified => "STREAM_SCAN_TYPE_UNSPECIFIED",
1851 Self::Chain => "STREAM_SCAN_TYPE_CHAIN",
1852 Self::Rearrange => "STREAM_SCAN_TYPE_REARRANGE",
1853 Self::Backfill => "STREAM_SCAN_TYPE_BACKFILL",
1854 Self::UpstreamOnly => "STREAM_SCAN_TYPE_UPSTREAM_ONLY",
1855 Self::ArrangementBackfill => "STREAM_SCAN_TYPE_ARRANGEMENT_BACKFILL",
1856 Self::SnapshotBackfill => "STREAM_SCAN_TYPE_SNAPSHOT_BACKFILL",
1857 Self::CrossDbSnapshotBackfill => {
1858 "STREAM_SCAN_TYPE_CROSS_DB_SNAPSHOT_BACKFILL"
1859 }
1860 }
1861 }
1862 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1864 match value {
1865 "STREAM_SCAN_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
1866 "STREAM_SCAN_TYPE_CHAIN" => Some(Self::Chain),
1867 "STREAM_SCAN_TYPE_REARRANGE" => Some(Self::Rearrange),
1868 "STREAM_SCAN_TYPE_BACKFILL" => Some(Self::Backfill),
1869 "STREAM_SCAN_TYPE_UPSTREAM_ONLY" => Some(Self::UpstreamOnly),
1870 "STREAM_SCAN_TYPE_ARRANGEMENT_BACKFILL" => Some(Self::ArrangementBackfill),
1871 "STREAM_SCAN_TYPE_SNAPSHOT_BACKFILL" => Some(Self::SnapshotBackfill),
1872 "STREAM_SCAN_TYPE_CROSS_DB_SNAPSHOT_BACKFILL" => {
1873 Some(Self::CrossDbSnapshotBackfill)
1874 }
1875 _ => None,
1876 }
1877 }
1878}
1879#[derive(prost_helpers::AnyPB)]
1880#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1881#[repr(i32)]
1882pub enum OverWindowCachePolicy {
1883 Unspecified = 0,
1884 Full = 1,
1885 Recent = 2,
1886 RecentFirstN = 3,
1887 RecentLastN = 4,
1888}
1889impl OverWindowCachePolicy {
1890 pub fn as_str_name(&self) -> &'static str {
1895 match self {
1896 Self::Unspecified => "OVER_WINDOW_CACHE_POLICY_UNSPECIFIED",
1897 Self::Full => "OVER_WINDOW_CACHE_POLICY_FULL",
1898 Self::Recent => "OVER_WINDOW_CACHE_POLICY_RECENT",
1899 Self::RecentFirstN => "OVER_WINDOW_CACHE_POLICY_RECENT_FIRST_N",
1900 Self::RecentLastN => "OVER_WINDOW_CACHE_POLICY_RECENT_LAST_N",
1901 }
1902 }
1903 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1905 match value {
1906 "OVER_WINDOW_CACHE_POLICY_UNSPECIFIED" => Some(Self::Unspecified),
1907 "OVER_WINDOW_CACHE_POLICY_FULL" => Some(Self::Full),
1908 "OVER_WINDOW_CACHE_POLICY_RECENT" => Some(Self::Recent),
1909 "OVER_WINDOW_CACHE_POLICY_RECENT_FIRST_N" => Some(Self::RecentFirstN),
1910 "OVER_WINDOW_CACHE_POLICY_RECENT_LAST_N" => Some(Self::RecentLastN),
1911 _ => None,
1912 }
1913 }
1914}
1915#[derive(prost_helpers::AnyPB)]
1916#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1917#[repr(i32)]
1918pub enum DispatcherType {
1919 Unspecified = 0,
1920 Hash = 1,
1922 Broadcast = 2,
1927 Simple = 3,
1929 NoShuffle = 4,
1933}
1934impl DispatcherType {
1935 pub fn as_str_name(&self) -> &'static str {
1940 match self {
1941 Self::Unspecified => "DISPATCHER_TYPE_UNSPECIFIED",
1942 Self::Hash => "DISPATCHER_TYPE_HASH",
1943 Self::Broadcast => "DISPATCHER_TYPE_BROADCAST",
1944 Self::Simple => "DISPATCHER_TYPE_SIMPLE",
1945 Self::NoShuffle => "DISPATCHER_TYPE_NO_SHUFFLE",
1946 }
1947 }
1948 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1950 match value {
1951 "DISPATCHER_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
1952 "DISPATCHER_TYPE_HASH" => Some(Self::Hash),
1953 "DISPATCHER_TYPE_BROADCAST" => Some(Self::Broadcast),
1954 "DISPATCHER_TYPE_SIMPLE" => Some(Self::Simple),
1955 "DISPATCHER_TYPE_NO_SHUFFLE" => Some(Self::NoShuffle),
1956 _ => None,
1957 }
1958 }
1959}