1#[derive(prost_helpers::AnyPB)]
3#[derive(Clone, PartialEq, ::prost::Message)]
4pub struct Dispatchers {
5 #[prost(message, repeated, tag = "1")]
6 pub dispatchers: ::prost::alloc::vec::Vec<Dispatcher>,
7}
8#[derive(prost_helpers::AnyPB)]
9#[derive(Clone, PartialEq, ::prost::Message)]
10pub struct UpstreamSinkInfo {
11 #[prost(uint32, tag = "1", wrapper = "crate::id::FragmentId")]
12 pub upstream_fragment_id: crate::id::FragmentId,
13 #[prost(message, repeated, tag = "2")]
14 pub sink_output_schema: ::prost::alloc::vec::Vec<super::plan_common::Field>,
15 #[prost(message, repeated, tag = "3")]
16 pub project_exprs: ::prost::alloc::vec::Vec<super::expr::ExprNode>,
17}
18#[derive(prost_helpers::AnyPB)]
19#[derive(Clone, PartialEq, ::prost::Message)]
20pub struct AddMutation {
21 #[prost(map = "uint32, message", tag = "1", wrapper = "crate::id::ActorId")]
23 pub actor_dispatchers: ::std::collections::HashMap<crate::id::ActorId, Dispatchers>,
24 #[prost(uint32, repeated, tag = "3", wrapper = "crate::id::ActorId")]
26 pub added_actors: ::prost::alloc::vec::Vec<crate::id::ActorId>,
27 #[prost(map = "uint32, message", tag = "2", wrapper = "crate::id::ActorId")]
31 pub actor_splits: ::std::collections::HashMap<
32 crate::id::ActorId,
33 super::source::ConnectorSplits,
34 >,
35 #[prost(bool, tag = "4")]
38 pub pause: bool,
39 #[prost(message, repeated, tag = "5")]
40 pub subscriptions_to_add: ::prost::alloc::vec::Vec<SubscriptionUpstreamInfo>,
41 #[prost(uint32, repeated, tag = "6", wrapper = "crate::id::FragmentId")]
43 pub backfill_nodes_to_pause: ::prost::alloc::vec::Vec<crate::id::FragmentId>,
44 #[prost(message, optional, tag = "7")]
46 pub actor_cdc_table_snapshot_splits: ::core::option::Option<
47 super::source::CdcTableSnapshotSplitsWithGeneration,
48 >,
49 #[prost(map = "uint32, message", tag = "8", wrapper = "crate::id::FragmentId")]
51 pub new_upstream_sinks: ::std::collections::HashMap<
52 crate::id::FragmentId,
53 add_mutation::NewUpstreamSink,
54 >,
55}
56pub mod add_mutation {
58 #[derive(prost_helpers::AnyPB)]
59 #[derive(Clone, PartialEq, ::prost::Message)]
60 pub struct NewUpstreamSink {
61 #[prost(message, optional, tag = "1")]
62 pub info: ::core::option::Option<super::UpstreamSinkInfo>,
63 #[prost(message, repeated, tag = "2")]
64 pub upstream_actors: ::prost::alloc::vec::Vec<super::super::common::ActorInfo>,
65 }
66}
67#[derive(prost_helpers::AnyPB)]
68#[derive(Clone, PartialEq, ::prost::Message)]
69pub struct StopMutation {
70 #[prost(uint32, repeated, tag = "1", wrapper = "crate::id::ActorId")]
71 pub actors: ::prost::alloc::vec::Vec<crate::id::ActorId>,
72 #[prost(uint32, repeated, tag = "2", wrapper = "crate::id::FragmentId")]
74 pub dropped_sink_fragments: ::prost::alloc::vec::Vec<crate::id::FragmentId>,
75}
76#[derive(prost_helpers::AnyPB)]
77#[derive(Clone, PartialEq, ::prost::Message)]
78pub struct UpdateMutation {
79 #[prost(message, repeated, tag = "1")]
81 pub dispatcher_update: ::prost::alloc::vec::Vec<update_mutation::DispatcherUpdate>,
82 #[prost(message, repeated, tag = "2")]
84 pub merge_update: ::prost::alloc::vec::Vec<update_mutation::MergeUpdate>,
85 #[prost(map = "uint32, message", tag = "3", wrapper = "crate::id::ActorId")]
87 pub actor_vnode_bitmap_update: ::std::collections::HashMap<
88 crate::id::ActorId,
89 super::common::Buffer,
90 >,
91 #[prost(uint32, repeated, tag = "4", wrapper = "crate::id::ActorId")]
93 pub dropped_actors: ::prost::alloc::vec::Vec<crate::id::ActorId>,
94 #[prost(map = "uint32, message", tag = "5", wrapper = "crate::id::ActorId")]
97 pub actor_splits: ::std::collections::HashMap<
98 crate::id::ActorId,
99 super::source::ConnectorSplits,
100 >,
101 #[prost(map = "uint32, message", tag = "6", wrapper = "crate::id::ActorId")]
104 pub actor_new_dispatchers: ::std::collections::HashMap<
105 crate::id::ActorId,
106 Dispatchers,
107 >,
108 #[prost(message, optional, tag = "7")]
110 pub actor_cdc_table_snapshot_splits: ::core::option::Option<
111 super::source::CdcTableSnapshotSplitsWithGeneration,
112 >,
113 #[prost(map = "uint32, message", tag = "8")]
114 pub sink_schema_change: ::std::collections::HashMap<u32, SinkSchemaChange>,
115 #[prost(message, repeated, tag = "9")]
116 pub subscriptions_to_drop: ::prost::alloc::vec::Vec<SubscriptionUpstreamInfo>,
117}
118pub mod update_mutation {
120 #[derive(prost_helpers::AnyPB)]
121 #[derive(Clone, PartialEq, ::prost::Message)]
122 pub struct DispatcherUpdate {
123 #[prost(uint32, tag = "1", wrapper = "crate::id::ActorId")]
125 pub actor_id: crate::id::ActorId,
126 #[prost(uint32, tag = "2", wrapper = "crate::id::FragmentId")]
127 pub dispatcher_id: crate::id::FragmentId,
128 #[prost(message, optional, tag = "3")]
131 pub hash_mapping: ::core::option::Option<super::ActorMapping>,
132 #[prost(uint32, repeated, tag = "4", wrapper = "crate::id::ActorId")]
134 pub added_downstream_actor_id: ::prost::alloc::vec::Vec<crate::id::ActorId>,
135 #[prost(uint32, repeated, tag = "5", wrapper = "crate::id::ActorId")]
137 pub removed_downstream_actor_id: ::prost::alloc::vec::Vec<crate::id::ActorId>,
138 }
139 #[derive(prost_helpers::AnyPB)]
140 #[derive(Clone, PartialEq, ::prost::Message)]
141 pub struct MergeUpdate {
142 #[prost(uint32, tag = "1", wrapper = "crate::id::ActorId")]
144 pub actor_id: crate::id::ActorId,
145 #[prost(uint32, tag = "2", wrapper = "crate::id::FragmentId")]
146 pub upstream_fragment_id: crate::id::FragmentId,
147 #[prost(uint32, optional, tag = "5", wrapper = "crate::id::FragmentId")]
151 pub new_upstream_fragment_id: ::core::option::Option<crate::id::FragmentId>,
152 #[prost(message, repeated, tag = "3")]
154 pub added_upstream_actors: ::prost::alloc::vec::Vec<
155 super::super::common::ActorInfo,
156 >,
157 #[prost(uint32, repeated, tag = "4", wrapper = "crate::id::ActorId")]
160 pub removed_upstream_actor_id: ::prost::alloc::vec::Vec<crate::id::ActorId>,
161 }
162}
163#[derive(prost_helpers::AnyPB)]
164#[derive(Clone, PartialEq, ::prost::Message)]
165pub struct SourceChangeSplitMutation {
166 #[prost(map = "uint32, message", tag = "2", wrapper = "crate::id::ActorId")]
168 pub actor_splits: ::std::collections::HashMap<
169 crate::id::ActorId,
170 super::source::ConnectorSplits,
171 >,
172}
173#[derive(prost_helpers::AnyPB)]
174#[derive(Clone, Copy, PartialEq, ::prost::Message)]
175pub struct PauseMutation {}
176#[derive(prost_helpers::AnyPB)]
177#[derive(Clone, Copy, PartialEq, ::prost::Message)]
178pub struct ResumeMutation {}
179#[derive(prost_helpers::AnyPB)]
180#[derive(Clone, PartialEq, ::prost::Message)]
181pub struct ThrottleMutation {
182 #[prost(map = "uint32, message", tag = "1", wrapper = "crate::id::FragmentId")]
183 pub fragment_throttle: ::std::collections::HashMap<
184 crate::id::FragmentId,
185 throttle_mutation::ThrottleConfig,
186 >,
187}
188pub mod throttle_mutation {
190 #[derive(prost_helpers::AnyPB)]
191 #[derive(Clone, Copy, PartialEq, ::prost::Message)]
192 pub struct ThrottleConfig {
193 #[prost(uint32, optional, tag = "1")]
194 pub rate_limit: ::core::option::Option<u32>,
195 #[prost(enumeration = "super::super::common::ThrottleType", tag = "2")]
196 pub throttle_type: i32,
197 }
198}
199#[derive(prost_helpers::AnyPB)]
200#[derive(Clone, Copy, PartialEq, ::prost::Message)]
201pub struct SubscriptionUpstreamInfo {
202 #[prost(uint32, tag = "1", wrapper = "crate::id::SubscriberId")]
204 pub subscriber_id: crate::id::SubscriberId,
205 #[prost(uint32, tag = "2", wrapper = "crate::id::TableId")]
206 pub upstream_mv_table_id: crate::id::TableId,
207}
208#[derive(prost_helpers::AnyPB)]
209#[derive(Clone, PartialEq, ::prost::Message)]
210pub struct DropSubscriptionsMutation {
211 #[prost(message, repeated, tag = "1")]
212 pub info: ::prost::alloc::vec::Vec<SubscriptionUpstreamInfo>,
213}
214#[derive(prost_helpers::AnyPB)]
215#[derive(Clone, PartialEq, ::prost::Message)]
216pub struct ConnectorPropsChangeMutation {
217 #[prost(map = "uint32, message", tag = "1")]
218 pub connector_props_infos: ::std::collections::HashMap<
219 u32,
220 connector_props_change_mutation::ConnectorPropsInfo,
221 >,
222}
223pub mod connector_props_change_mutation {
225 #[derive(prost_helpers::AnyPB)]
226 #[derive(Clone, PartialEq, ::prost::Message)]
227 pub struct ConnectorPropsInfo {
228 #[prost(map = "string, string", tag = "1")]
229 pub connector_props_info: ::std::collections::HashMap<
230 ::prost::alloc::string::String,
231 ::prost::alloc::string::String,
232 >,
233 }
234}
235#[derive(prost_helpers::AnyPB)]
236#[derive(Clone, PartialEq, ::prost::Message)]
237pub struct StartFragmentBackfillMutation {
238 #[prost(uint32, repeated, tag = "1", wrapper = "crate::id::FragmentId")]
239 pub fragment_ids: ::prost::alloc::vec::Vec<crate::id::FragmentId>,
240}
241#[derive(prost_helpers::AnyPB)]
242#[derive(Clone, Copy, PartialEq, ::prost::Message)]
243pub struct RefreshStartMutation {
244 #[prost(uint32, tag = "1", wrapper = "crate::id::TableId")]
246 pub table_id: crate::id::TableId,
247 #[prost(uint32, tag = "2", wrapper = "crate::id::SourceId")]
249 pub associated_source_id: crate::id::SourceId,
250}
251#[derive(prost_helpers::AnyPB)]
252#[derive(Clone, Copy, PartialEq, ::prost::Message)]
253pub struct ListFinishMutation {
254 #[prost(uint32, tag = "1", wrapper = "crate::id::SourceId")]
256 pub associated_source_id: crate::id::SourceId,
257}
258#[derive(prost_helpers::AnyPB)]
259#[derive(Clone, Copy, PartialEq, ::prost::Message)]
260pub struct LoadFinishMutation {
261 #[prost(uint32, tag = "1", wrapper = "crate::id::SourceId")]
263 pub associated_source_id: crate::id::SourceId,
264}
265#[derive(prost_helpers::AnyPB)]
266#[derive(Clone, Copy, PartialEq, ::prost::Message)]
267pub struct ResetSourceMutation {
268 #[prost(uint32, tag = "1")]
270 pub source_id: u32,
271}
272#[derive(prost_helpers::AnyPB)]
275#[derive(Clone, PartialEq, ::prost::Message)]
276pub struct InjectSourceOffsetsMutation {
277 #[prost(uint32, tag = "1")]
279 pub source_id: u32,
280 #[prost(map = "string, string", tag = "2")]
282 pub split_offsets: ::std::collections::HashMap<
283 ::prost::alloc::string::String,
284 ::prost::alloc::string::String,
285 >,
286}
287#[derive(prost_helpers::AnyPB)]
288#[derive(Clone, PartialEq, ::prost::Message)]
289pub struct BarrierMutation {
290 #[prost(
291 oneof = "barrier_mutation::Mutation",
292 tags = "3, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16, 17, 18, 19"
293 )]
294 pub mutation: ::core::option::Option<barrier_mutation::Mutation>,
295}
296pub mod barrier_mutation {
298 #[derive(prost_helpers::AnyPB)]
299 #[derive(Clone, PartialEq, ::prost::Oneof)]
300 pub enum Mutation {
301 #[prost(message, tag = "3")]
303 Add(super::AddMutation),
304 #[prost(message, tag = "4")]
307 Stop(super::StopMutation),
308 #[prost(message, tag = "5")]
310 Update(super::UpdateMutation),
311 #[prost(message, tag = "6")]
313 Splits(super::SourceChangeSplitMutation),
314 #[prost(message, tag = "7")]
316 Pause(super::PauseMutation),
317 #[prost(message, tag = "8")]
319 Resume(super::ResumeMutation),
320 #[prost(message, tag = "10")]
322 Throttle(super::ThrottleMutation),
323 #[prost(message, tag = "12")]
325 DropSubscriptions(super::DropSubscriptionsMutation),
326 #[prost(message, tag = "13")]
328 ConnectorPropsChange(super::ConnectorPropsChangeMutation),
329 #[prost(message, tag = "14")]
335 StartFragmentBackfill(super::StartFragmentBackfillMutation),
336 #[prost(message, tag = "15")]
338 RefreshStart(super::RefreshStartMutation),
339 #[prost(message, tag = "16")]
341 LoadFinish(super::LoadFinishMutation),
342 #[prost(message, tag = "17")]
344 ListFinish(super::ListFinishMutation),
345 #[prost(message, tag = "18")]
347 ResetSource(super::ResetSourceMutation),
348 #[prost(message, tag = "19")]
350 InjectSourceOffsets(super::InjectSourceOffsetsMutation),
351 }
352}
353#[derive(prost_helpers::AnyPB)]
354#[derive(Clone, PartialEq, ::prost::Message)]
355pub struct Barrier {
356 #[prost(message, optional, tag = "1")]
357 pub epoch: ::core::option::Option<super::data::Epoch>,
358 #[prost(message, optional, tag = "3")]
359 pub mutation: ::core::option::Option<BarrierMutation>,
360 #[prost(map = "string, string", tag = "2")]
362 pub tracing_context: ::std::collections::HashMap<
363 ::prost::alloc::string::String,
364 ::prost::alloc::string::String,
365 >,
366 #[prost(enumeration = "barrier::BarrierKind", tag = "9")]
368 pub kind: i32,
369}
370pub mod barrier {
372 #[derive(prost_helpers::AnyPB)]
373 #[derive(::enum_as_inner::EnumAsInner)]
374 #[derive(
375 Clone,
376 Copy,
377 Debug,
378 PartialEq,
379 Eq,
380 Hash,
381 PartialOrd,
382 Ord,
383 ::prost::Enumeration
384 )]
385 #[repr(i32)]
386 pub enum BarrierKind {
387 Unspecified = 0,
388 Initial = 1,
391 Barrier = 2,
393 Checkpoint = 3,
395 }
396 impl BarrierKind {
397 pub fn as_str_name(&self) -> &'static str {
402 match self {
403 Self::Unspecified => "BARRIER_KIND_UNSPECIFIED",
404 Self::Initial => "BARRIER_KIND_INITIAL",
405 Self::Barrier => "BARRIER_KIND_BARRIER",
406 Self::Checkpoint => "BARRIER_KIND_CHECKPOINT",
407 }
408 }
409 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
411 match value {
412 "BARRIER_KIND_UNSPECIFIED" => Some(Self::Unspecified),
413 "BARRIER_KIND_INITIAL" => Some(Self::Initial),
414 "BARRIER_KIND_BARRIER" => Some(Self::Barrier),
415 "BARRIER_KIND_CHECKPOINT" => Some(Self::Checkpoint),
416 _ => None,
417 }
418 }
419 }
420}
421#[derive(prost_helpers::AnyPB)]
422#[derive(Clone, PartialEq, ::prost::Message)]
423pub struct Watermark {
424 #[prost(message, optional, tag = "1")]
426 pub column: ::core::option::Option<super::expr::InputRef>,
427 #[prost(message, optional, tag = "3")]
429 pub val: ::core::option::Option<super::data::Datum>,
430}
431#[derive(prost_helpers::AnyPB)]
432#[derive(Clone, PartialEq, ::prost::Message)]
433pub struct StreamMessage {
434 #[prost(oneof = "stream_message::StreamMessage", tags = "1, 2, 3")]
435 pub stream_message: ::core::option::Option<stream_message::StreamMessage>,
436}
437pub mod stream_message {
439 #[derive(prost_helpers::AnyPB)]
440 #[derive(Clone, PartialEq, ::prost::Oneof)]
441 pub enum StreamMessage {
442 #[prost(message, tag = "1")]
443 StreamChunk(super::super::data::StreamChunk),
444 #[prost(message, tag = "2")]
445 Barrier(super::Barrier),
446 #[prost(message, tag = "3")]
447 Watermark(super::Watermark),
448 }
449}
450#[derive(prost_helpers::AnyPB)]
451#[derive(Clone, PartialEq, ::prost::Message)]
452pub struct StreamMessageBatch {
453 #[prost(oneof = "stream_message_batch::StreamMessageBatch", tags = "1, 2, 3")]
454 pub stream_message_batch: ::core::option::Option<
455 stream_message_batch::StreamMessageBatch,
456 >,
457}
458pub mod stream_message_batch {
460 #[derive(prost_helpers::AnyPB)]
461 #[derive(Clone, PartialEq, ::prost::Message)]
462 pub struct BarrierBatch {
463 #[prost(message, repeated, tag = "1")]
464 pub barriers: ::prost::alloc::vec::Vec<super::Barrier>,
465 }
466 #[derive(prost_helpers::AnyPB)]
467 #[derive(Clone, PartialEq, ::prost::Oneof)]
468 pub enum StreamMessageBatch {
469 #[prost(message, tag = "1")]
470 StreamChunk(super::super::data::StreamChunk),
471 #[prost(message, tag = "2")]
472 BarrierBatch(BarrierBatch),
473 #[prost(message, tag = "3")]
474 Watermark(super::Watermark),
475 }
476}
477#[derive(prost_helpers::AnyPB)]
479#[derive(Clone, PartialEq, ::prost::Message)]
480pub struct ActorMapping {
481 #[prost(uint32, repeated, tag = "1")]
482 pub original_indices: ::prost::alloc::vec::Vec<u32>,
483 #[prost(uint32, repeated, tag = "2", wrapper = "crate::id::ActorId")]
484 pub data: ::prost::alloc::vec::Vec<crate::id::ActorId>,
485}
486#[derive(prost_helpers::AnyPB)]
487#[derive(Clone, PartialEq, ::prost::Message)]
488pub struct Columns {
489 #[prost(message, repeated, tag = "1")]
490 pub columns: ::prost::alloc::vec::Vec<super::plan_common::ColumnCatalog>,
491}
492#[derive(prost_helpers::AnyPB)]
493#[derive(Clone, PartialEq, ::prost::Message)]
494pub struct StreamSource {
495 #[prost(uint32, tag = "1", wrapper = "crate::id::SourceId")]
496 pub source_id: crate::id::SourceId,
497 #[prost(message, optional, tag = "2")]
498 pub state_table: ::core::option::Option<super::catalog::Table>,
499 #[prost(uint32, optional, tag = "3")]
500 pub row_id_index: ::core::option::Option<u32>,
501 #[prost(message, repeated, tag = "4")]
502 pub columns: ::prost::alloc::vec::Vec<super::plan_common::ColumnCatalog>,
503 #[prost(btree_map = "string, string", tag = "6")]
504 pub with_properties: ::prost::alloc::collections::BTreeMap<
505 ::prost::alloc::string::String,
506 ::prost::alloc::string::String,
507 >,
508 #[prost(message, optional, tag = "7")]
509 pub info: ::core::option::Option<super::catalog::StreamSourceInfo>,
510 #[prost(string, tag = "8")]
511 pub source_name: ::prost::alloc::string::String,
512 #[prost(uint32, optional, tag = "9")]
514 pub rate_limit: ::core::option::Option<u32>,
515 #[prost(btree_map = "string, message", tag = "10")]
516 pub secret_refs: ::prost::alloc::collections::BTreeMap<
517 ::prost::alloc::string::String,
518 super::secret::SecretRef,
519 >,
520 #[prost(message, optional, tag = "11")]
522 pub downstream_columns: ::core::option::Option<Columns>,
523 #[prost(message, optional, tag = "12")]
524 pub refresh_mode: ::core::option::Option<super::plan_common::SourceRefreshMode>,
525 #[prost(uint32, optional, tag = "13", wrapper = "crate::id::TableId")]
526 pub associated_table_id: ::core::option::Option<crate::id::TableId>,
527}
528#[derive(prost_helpers::AnyPB)]
530#[derive(Clone, PartialEq, ::prost::Message)]
531pub struct StreamFsFetch {
532 #[prost(uint32, tag = "1", wrapper = "crate::id::SourceId")]
533 pub source_id: crate::id::SourceId,
534 #[prost(message, optional, tag = "2")]
535 pub state_table: ::core::option::Option<super::catalog::Table>,
536 #[prost(uint32, optional, tag = "3")]
537 pub row_id_index: ::core::option::Option<u32>,
538 #[prost(message, repeated, tag = "4")]
539 pub columns: ::prost::alloc::vec::Vec<super::plan_common::ColumnCatalog>,
540 #[prost(btree_map = "string, string", tag = "6")]
541 pub with_properties: ::prost::alloc::collections::BTreeMap<
542 ::prost::alloc::string::String,
543 ::prost::alloc::string::String,
544 >,
545 #[prost(message, optional, tag = "7")]
546 pub info: ::core::option::Option<super::catalog::StreamSourceInfo>,
547 #[prost(string, tag = "8")]
548 pub source_name: ::prost::alloc::string::String,
549 #[prost(uint32, optional, tag = "9")]
551 pub rate_limit: ::core::option::Option<u32>,
552 #[prost(btree_map = "string, message", tag = "10")]
553 pub secret_refs: ::prost::alloc::collections::BTreeMap<
554 ::prost::alloc::string::String,
555 super::secret::SecretRef,
556 >,
557 #[prost(message, optional, tag = "11")]
558 pub refresh_mode: ::core::option::Option<super::plan_common::SourceRefreshMode>,
559 #[prost(uint32, optional, tag = "12", wrapper = "crate::id::TableId")]
560 pub associated_table_id: ::core::option::Option<crate::id::TableId>,
561}
562#[derive(prost_helpers::AnyPB)]
565#[derive(Clone, Copy, PartialEq, ::prost::Message)]
566pub struct BarrierRecvNode {}
567#[derive(prost_helpers::AnyPB)]
568#[derive(Clone, PartialEq, ::prost::Message)]
569pub struct SourceNode {
570 #[prost(message, optional, tag = "1")]
573 pub source_inner: ::core::option::Option<StreamSource>,
574}
575#[derive(prost_helpers::AnyPB)]
576#[derive(Clone, PartialEq, ::prost::Message)]
577pub struct StreamFsFetchNode {
578 #[prost(message, optional, tag = "1")]
579 pub node_inner: ::core::option::Option<StreamFsFetch>,
580}
581#[derive(prost_helpers::AnyPB)]
584#[derive(Clone, PartialEq, ::prost::Message)]
585pub struct SourceBackfillNode {
586 #[prost(uint32, tag = "1", wrapper = "crate::id::SourceId")]
587 pub upstream_source_id: crate::id::SourceId,
588 #[prost(uint32, optional, tag = "2")]
589 pub row_id_index: ::core::option::Option<u32>,
590 #[prost(message, repeated, tag = "3")]
591 pub columns: ::prost::alloc::vec::Vec<super::plan_common::ColumnCatalog>,
592 #[prost(message, optional, tag = "4")]
593 pub info: ::core::option::Option<super::catalog::StreamSourceInfo>,
594 #[prost(string, tag = "5")]
595 pub source_name: ::prost::alloc::string::String,
596 #[prost(btree_map = "string, string", tag = "6")]
597 pub with_properties: ::prost::alloc::collections::BTreeMap<
598 ::prost::alloc::string::String,
599 ::prost::alloc::string::String,
600 >,
601 #[prost(uint32, optional, tag = "7")]
603 pub rate_limit: ::core::option::Option<u32>,
604 #[prost(message, optional, tag = "8")]
606 pub state_table: ::core::option::Option<super::catalog::Table>,
607 #[prost(btree_map = "string, message", tag = "9")]
608 pub secret_refs: ::prost::alloc::collections::BTreeMap<
609 ::prost::alloc::string::String,
610 super::secret::SecretRef,
611 >,
612}
613#[derive(prost_helpers::AnyPB)]
614#[derive(Clone, PartialEq, ::prost::Message)]
615pub struct SinkDesc {
616 #[prost(uint32, tag = "1", wrapper = "crate::id::SinkId")]
617 pub id: crate::id::SinkId,
618 #[prost(string, tag = "2")]
619 pub name: ::prost::alloc::string::String,
620 #[prost(string, tag = "3")]
621 pub definition: ::prost::alloc::string::String,
622 #[prost(message, repeated, tag = "5")]
623 pub plan_pk: ::prost::alloc::vec::Vec<super::common::ColumnOrder>,
624 #[prost(uint32, repeated, tag = "6")]
625 pub downstream_pk: ::prost::alloc::vec::Vec<u32>,
626 #[prost(uint32, repeated, tag = "7")]
627 pub distribution_key: ::prost::alloc::vec::Vec<u32>,
628 #[prost(btree_map = "string, string", tag = "8")]
629 pub properties: ::prost::alloc::collections::BTreeMap<
630 ::prost::alloc::string::String,
631 ::prost::alloc::string::String,
632 >,
633 #[prost(enumeration = "super::catalog::SinkType", tag = "9")]
635 pub sink_type: i32,
636 #[prost(message, repeated, tag = "10")]
637 pub column_catalogs: ::prost::alloc::vec::Vec<super::plan_common::ColumnCatalog>,
638 #[prost(string, tag = "11")]
639 pub db_name: ::prost::alloc::string::String,
640 #[prost(string, tag = "12")]
643 pub sink_from_name: ::prost::alloc::string::String,
644 #[prost(message, optional, tag = "13")]
645 pub format_desc: ::core::option::Option<super::catalog::SinkFormatDesc>,
646 #[prost(uint32, optional, tag = "14")]
647 pub target_table: ::core::option::Option<u32>,
648 #[prost(uint64, optional, tag = "15")]
649 pub extra_partition_col_idx: ::core::option::Option<u64>,
650 #[prost(btree_map = "string, message", tag = "16")]
651 pub secret_refs: ::prost::alloc::collections::BTreeMap<
652 ::prost::alloc::string::String,
653 super::secret::SecretRef,
654 >,
655 #[prost(bool, tag = "17")]
659 pub raw_ignore_delete: bool,
660}
661#[derive(prost_helpers::AnyPB)]
662#[derive(Clone, PartialEq, ::prost::Message)]
663pub struct SinkNode {
664 #[prost(message, optional, tag = "1")]
665 pub sink_desc: ::core::option::Option<SinkDesc>,
666 #[prost(message, optional, tag = "2")]
668 pub table: ::core::option::Option<super::catalog::Table>,
669 #[prost(enumeration = "SinkLogStoreType", tag = "3")]
670 pub log_store_type: i32,
671 #[prost(uint32, optional, tag = "4")]
672 pub rate_limit: ::core::option::Option<u32>,
673}
674#[derive(prost_helpers::AnyPB)]
675#[derive(Clone, PartialEq, ::prost::Message)]
676pub struct ProjectNode {
677 #[prost(message, repeated, tag = "1")]
678 pub select_list: ::prost::alloc::vec::Vec<super::expr::ExprNode>,
679 #[prost(uint32, repeated, tag = "2")]
683 pub watermark_input_cols: ::prost::alloc::vec::Vec<u32>,
684 #[prost(uint32, repeated, tag = "3")]
685 pub watermark_output_cols: ::prost::alloc::vec::Vec<u32>,
686 #[prost(uint32, repeated, tag = "4")]
687 pub nondecreasing_exprs: ::prost::alloc::vec::Vec<u32>,
688 #[prost(bool, tag = "5")]
691 pub noop_update_hint: bool,
692}
693#[derive(prost_helpers::AnyPB)]
694#[derive(Clone, PartialEq, ::prost::Message)]
695pub struct FilterNode {
696 #[prost(message, optional, tag = "1")]
697 pub search_condition: ::core::option::Option<super::expr::ExprNode>,
698}
699#[derive(prost_helpers::AnyPB)]
700#[derive(Clone, PartialEq, ::prost::Message)]
701pub struct ChangeLogNode {
702 #[prost(bool, tag = "1")]
704 pub need_op: bool,
705 #[prost(uint32, repeated, tag = "2")]
706 pub distribution_keys: ::prost::alloc::vec::Vec<u32>,
707}
708#[derive(prost_helpers::AnyPB)]
709#[derive(Clone, PartialEq, ::prost::Message)]
710pub struct CdcFilterNode {
711 #[prost(message, optional, tag = "1")]
712 pub search_condition: ::core::option::Option<super::expr::ExprNode>,
713 #[prost(uint32, tag = "2", wrapper = "crate::id::SourceId")]
714 pub upstream_source_id: crate::id::SourceId,
715}
716#[derive(prost_helpers::AnyPB)]
724#[derive(Clone, PartialEq, ::prost::Message)]
725pub struct MaterializeNode {
726 #[prost(uint32, tag = "1", wrapper = "crate::id::TableId")]
727 pub table_id: crate::id::TableId,
728 #[prost(message, repeated, tag = "2")]
730 pub column_orders: ::prost::alloc::vec::Vec<super::common::ColumnOrder>,
731 #[prost(message, optional, tag = "3")]
738 pub table: ::core::option::Option<super::catalog::Table>,
739 #[prost(message, optional, tag = "5")]
748 pub staging_table: ::core::option::Option<super::catalog::Table>,
749 #[prost(message, optional, tag = "6")]
762 pub refresh_progress_table: ::core::option::Option<super::catalog::Table>,
763 #[prost(bool, tag = "7")]
765 pub cleaned_by_ttl_watermark: bool,
766}
767#[derive(prost_helpers::AnyPB)]
768#[derive(Clone, PartialEq, ::prost::Message)]
769pub struct AggCallState {
770 #[prost(oneof = "agg_call_state::Inner", tags = "1, 3")]
771 pub inner: ::core::option::Option<agg_call_state::Inner>,
772}
773pub mod agg_call_state {
775 #[derive(prost_helpers::AnyPB)]
777 #[derive(Clone, Copy, PartialEq, ::prost::Message)]
778 pub struct ValueState {}
779 #[derive(prost_helpers::AnyPB)]
781 #[derive(Clone, PartialEq, ::prost::Message)]
782 pub struct MaterializedInputState {
783 #[prost(message, optional, tag = "1")]
784 pub table: ::core::option::Option<super::super::catalog::Table>,
785 #[prost(uint32, repeated, tag = "2")]
787 pub included_upstream_indices: ::prost::alloc::vec::Vec<u32>,
788 #[prost(uint32, repeated, tag = "3")]
789 pub table_value_indices: ::prost::alloc::vec::Vec<u32>,
790 #[prost(message, repeated, tag = "4")]
791 pub order_columns: ::prost::alloc::vec::Vec<super::super::common::ColumnOrder>,
792 }
793 #[derive(prost_helpers::AnyPB)]
794 #[derive(Clone, PartialEq, ::prost::Oneof)]
795 pub enum Inner {
796 #[prost(message, tag = "1")]
797 ValueState(ValueState),
798 #[prost(message, tag = "3")]
799 MaterializedInputState(MaterializedInputState),
800 }
801}
802#[derive(prost_helpers::AnyPB)]
803#[derive(Clone, PartialEq, ::prost::Message)]
804pub struct SimpleAggNode {
805 #[prost(message, repeated, tag = "1")]
806 pub agg_calls: ::prost::alloc::vec::Vec<super::expr::AggCall>,
807 #[prost(message, repeated, tag = "3")]
808 pub agg_call_states: ::prost::alloc::vec::Vec<AggCallState>,
809 #[prost(message, optional, tag = "4")]
810 pub intermediate_state_table: ::core::option::Option<super::catalog::Table>,
811 #[prost(bool, tag = "5")]
814 pub is_append_only: bool,
815 #[prost(map = "uint32, message", tag = "6")]
816 pub distinct_dedup_tables: ::std::collections::HashMap<u32, super::catalog::Table>,
817 #[prost(uint32, tag = "7")]
818 pub row_count_index: u32,
819 #[prost(enumeration = "AggNodeVersion", tag = "8")]
820 pub version: i32,
821 #[prost(bool, tag = "9")]
824 pub must_output_per_barrier: bool,
825}
826#[derive(prost_helpers::AnyPB)]
827#[derive(Clone, PartialEq, ::prost::Message)]
828pub struct HashAggNode {
829 #[prost(uint32, repeated, tag = "1")]
830 pub group_key: ::prost::alloc::vec::Vec<u32>,
831 #[prost(message, repeated, tag = "2")]
832 pub agg_calls: ::prost::alloc::vec::Vec<super::expr::AggCall>,
833 #[prost(message, repeated, tag = "3")]
834 pub agg_call_states: ::prost::alloc::vec::Vec<AggCallState>,
835 #[prost(message, optional, tag = "4")]
836 pub intermediate_state_table: ::core::option::Option<super::catalog::Table>,
837 #[prost(bool, tag = "5")]
840 pub is_append_only: bool,
841 #[prost(map = "uint32, message", tag = "6")]
842 pub distinct_dedup_tables: ::std::collections::HashMap<u32, super::catalog::Table>,
843 #[prost(uint32, tag = "7")]
844 pub row_count_index: u32,
845 #[prost(bool, tag = "8")]
846 pub emit_on_window_close: bool,
847 #[prost(enumeration = "AggNodeVersion", tag = "9")]
848 pub version: i32,
849}
850#[derive(prost_helpers::AnyPB)]
851#[derive(Clone, PartialEq, ::prost::Message)]
852pub struct TopNNode {
853 #[prost(uint64, tag = "1")]
855 pub limit: u64,
856 #[prost(uint64, tag = "2")]
857 pub offset: u64,
858 #[prost(message, optional, tag = "3")]
859 pub table: ::core::option::Option<super::catalog::Table>,
860 #[prost(message, repeated, tag = "4")]
861 pub order_by: ::prost::alloc::vec::Vec<super::common::ColumnOrder>,
862 #[prost(bool, tag = "5")]
863 pub with_ties: bool,
864}
865#[derive(prost_helpers::AnyPB)]
866#[derive(Clone, PartialEq, ::prost::Message)]
867pub struct GroupTopNNode {
868 #[prost(uint64, tag = "1")]
870 pub limit: u64,
871 #[prost(uint64, tag = "2")]
872 pub offset: u64,
873 #[prost(uint32, repeated, tag = "3")]
874 pub group_key: ::prost::alloc::vec::Vec<u32>,
875 #[prost(message, optional, tag = "4")]
876 pub table: ::core::option::Option<super::catalog::Table>,
877 #[prost(message, repeated, tag = "5")]
878 pub order_by: ::prost::alloc::vec::Vec<super::common::ColumnOrder>,
879 #[prost(bool, tag = "6")]
880 pub with_ties: bool,
881}
882#[derive(prost_helpers::AnyPB)]
883#[derive(Clone, PartialEq, ::prost::Message)]
884pub struct DeltaExpression {
885 #[prost(enumeration = "super::expr::expr_node::Type", tag = "1")]
886 pub delta_type: i32,
887 #[prost(message, optional, tag = "2")]
888 pub delta: ::core::option::Option<super::expr::ExprNode>,
889}
890#[derive(prost_helpers::AnyPB)]
892#[derive(Clone, PartialEq, ::prost::Message)]
893pub struct InequalityPair {
894 #[prost(uint32, tag = "1")]
896 pub key_required_larger: u32,
897 #[prost(uint32, tag = "2")]
899 pub key_required_smaller: u32,
900 #[prost(bool, tag = "3")]
902 pub clean_state: bool,
903 #[prost(message, optional, tag = "4")]
905 pub delta_expression: ::core::option::Option<DeltaExpression>,
906}
907#[derive(prost_helpers::AnyPB)]
908#[derive(Clone, Copy, PartialEq, ::prost::Message)]
909pub struct InequalityPairV2 {
910 #[prost(uint32, tag = "1")]
912 pub left_idx: u32,
913 #[prost(uint32, tag = "2")]
915 pub right_idx: u32,
916 #[prost(bool, tag = "3")]
918 pub clean_left_state: bool,
919 #[prost(bool, tag = "4")]
921 pub clean_right_state: bool,
922 #[prost(enumeration = "InequalityType", tag = "5")]
924 pub op: i32,
925}
926#[derive(prost_helpers::AnyPB)]
927#[derive(Clone, PartialEq, ::prost::Message)]
928pub struct HashJoinNode {
929 #[prost(enumeration = "super::plan_common::JoinType", tag = "1")]
930 pub join_type: i32,
931 #[prost(int32, repeated, tag = "2")]
932 pub left_key: ::prost::alloc::vec::Vec<i32>,
933 #[prost(int32, repeated, tag = "3")]
934 pub right_key: ::prost::alloc::vec::Vec<i32>,
935 #[prost(message, optional, tag = "4")]
936 pub condition: ::core::option::Option<super::expr::ExprNode>,
937 #[prost(message, repeated, tag = "5")]
938 pub inequality_pairs: ::prost::alloc::vec::Vec<InequalityPair>,
939 #[prost(message, optional, tag = "6")]
941 pub left_table: ::core::option::Option<super::catalog::Table>,
942 #[prost(message, optional, tag = "7")]
944 pub right_table: ::core::option::Option<super::catalog::Table>,
945 #[prost(message, optional, tag = "8")]
947 pub left_degree_table: ::core::option::Option<super::catalog::Table>,
948 #[prost(message, optional, tag = "9")]
950 pub right_degree_table: ::core::option::Option<super::catalog::Table>,
951 #[prost(uint32, repeated, tag = "10")]
953 pub output_indices: ::prost::alloc::vec::Vec<u32>,
954 #[prost(uint32, repeated, tag = "11")]
959 pub left_deduped_input_pk_indices: ::prost::alloc::vec::Vec<u32>,
960 #[prost(uint32, repeated, tag = "12")]
965 pub right_deduped_input_pk_indices: ::prost::alloc::vec::Vec<u32>,
966 #[prost(bool, repeated, tag = "13")]
967 pub null_safe: ::prost::alloc::vec::Vec<bool>,
968 #[prost(bool, tag = "14")]
971 pub is_append_only: bool,
972 #[deprecated]
975 #[prost(enumeration = "JoinEncodingType", tag = "15")]
976 pub join_encoding_type: i32,
977 #[prost(message, repeated, tag = "16")]
979 pub inequality_pairs_v2: ::prost::alloc::vec::Vec<InequalityPairV2>,
980}
981#[derive(prost_helpers::AnyPB)]
982#[derive(Clone, PartialEq, ::prost::Message)]
983pub struct AsOfJoinNode {
984 #[prost(enumeration = "super::plan_common::AsOfJoinType", tag = "1")]
985 pub join_type: i32,
986 #[prost(int32, repeated, tag = "2")]
987 pub left_key: ::prost::alloc::vec::Vec<i32>,
988 #[prost(int32, repeated, tag = "3")]
989 pub right_key: ::prost::alloc::vec::Vec<i32>,
990 #[prost(message, optional, tag = "4")]
992 pub left_table: ::core::option::Option<super::catalog::Table>,
993 #[prost(message, optional, tag = "5")]
995 pub right_table: ::core::option::Option<super::catalog::Table>,
996 #[prost(uint32, repeated, tag = "6")]
998 pub output_indices: ::prost::alloc::vec::Vec<u32>,
999 #[prost(uint32, repeated, tag = "7")]
1003 pub left_deduped_input_pk_indices: ::prost::alloc::vec::Vec<u32>,
1004 #[prost(uint32, repeated, tag = "8")]
1008 pub right_deduped_input_pk_indices: ::prost::alloc::vec::Vec<u32>,
1009 #[prost(bool, repeated, tag = "9")]
1010 pub null_safe: ::prost::alloc::vec::Vec<bool>,
1011 #[prost(message, optional, tag = "10")]
1012 pub asof_desc: ::core::option::Option<super::plan_common::AsOfJoinDesc>,
1013 #[deprecated]
1016 #[prost(enumeration = "JoinEncodingType", tag = "11")]
1017 pub join_encoding_type: i32,
1018}
1019#[derive(prost_helpers::AnyPB)]
1020#[derive(Clone, PartialEq, ::prost::Message)]
1021pub struct TemporalJoinNode {
1022 #[prost(enumeration = "super::plan_common::JoinType", tag = "1")]
1023 pub join_type: i32,
1024 #[prost(int32, repeated, tag = "2")]
1025 pub left_key: ::prost::alloc::vec::Vec<i32>,
1026 #[prost(int32, repeated, tag = "3")]
1027 pub right_key: ::prost::alloc::vec::Vec<i32>,
1028 #[prost(bool, repeated, tag = "4")]
1029 pub null_safe: ::prost::alloc::vec::Vec<bool>,
1030 #[prost(message, optional, tag = "5")]
1031 pub condition: ::core::option::Option<super::expr::ExprNode>,
1032 #[prost(uint32, repeated, tag = "6")]
1034 pub output_indices: ::prost::alloc::vec::Vec<u32>,
1035 #[prost(message, optional, tag = "7")]
1037 pub table_desc: ::core::option::Option<super::plan_common::StorageTableDesc>,
1038 #[prost(uint32, repeated, tag = "8")]
1040 pub table_output_indices: ::prost::alloc::vec::Vec<u32>,
1041 #[prost(message, optional, tag = "9")]
1043 pub memo_table: ::core::option::Option<super::catalog::Table>,
1044 #[prost(bool, tag = "10")]
1046 pub is_nested_loop: bool,
1047}
1048#[derive(prost_helpers::AnyPB)]
1049#[derive(Clone, PartialEq, ::prost::Message)]
1050pub struct DynamicFilterNode {
1051 #[prost(uint32, tag = "1")]
1052 pub left_key: u32,
1053 #[prost(message, optional, tag = "2")]
1055 pub condition: ::core::option::Option<super::expr::ExprNode>,
1056 #[prost(message, optional, tag = "3")]
1058 pub left_table: ::core::option::Option<super::catalog::Table>,
1059 #[prost(message, optional, tag = "4")]
1061 pub right_table: ::core::option::Option<super::catalog::Table>,
1062 #[deprecated]
1069 #[prost(bool, tag = "5")]
1070 pub condition_always_relax: bool,
1071 #[prost(bool, tag = "6")]
1073 pub cleaned_by_watermark: bool,
1074}
1075#[derive(prost_helpers::AnyPB)]
1078#[derive(Clone, PartialEq, ::prost::Message)]
1079pub struct DeltaIndexJoinNode {
1080 #[prost(enumeration = "super::plan_common::JoinType", tag = "1")]
1081 pub join_type: i32,
1082 #[prost(int32, repeated, tag = "2")]
1083 pub left_key: ::prost::alloc::vec::Vec<i32>,
1084 #[prost(int32, repeated, tag = "3")]
1085 pub right_key: ::prost::alloc::vec::Vec<i32>,
1086 #[prost(message, optional, tag = "4")]
1087 pub condition: ::core::option::Option<super::expr::ExprNode>,
1088 #[prost(uint32, tag = "7", wrapper = "crate::id::TableId")]
1090 pub left_table_id: crate::id::TableId,
1091 #[prost(uint32, tag = "8", wrapper = "crate::id::TableId")]
1093 pub right_table_id: crate::id::TableId,
1094 #[prost(message, optional, tag = "9")]
1096 pub left_info: ::core::option::Option<ArrangementInfo>,
1097 #[prost(message, optional, tag = "10")]
1099 pub right_info: ::core::option::Option<ArrangementInfo>,
1100 #[prost(uint32, repeated, tag = "11")]
1102 pub output_indices: ::prost::alloc::vec::Vec<u32>,
1103}
1104#[derive(prost_helpers::AnyPB)]
1105#[derive(Clone, PartialEq, ::prost::Message)]
1106pub struct HopWindowNode {
1107 #[prost(uint32, tag = "1")]
1108 pub time_col: u32,
1109 #[prost(message, optional, tag = "2")]
1110 pub window_slide: ::core::option::Option<super::data::Interval>,
1111 #[prost(message, optional, tag = "3")]
1112 pub window_size: ::core::option::Option<super::data::Interval>,
1113 #[prost(uint32, repeated, tag = "4")]
1114 pub output_indices: ::prost::alloc::vec::Vec<u32>,
1115 #[prost(message, repeated, tag = "5")]
1116 pub window_start_exprs: ::prost::alloc::vec::Vec<super::expr::ExprNode>,
1117 #[prost(message, repeated, tag = "6")]
1118 pub window_end_exprs: ::prost::alloc::vec::Vec<super::expr::ExprNode>,
1119}
1120#[derive(prost_helpers::AnyPB)]
1121#[derive(Clone, PartialEq, ::prost::Message)]
1122pub struct MergeNode {
1123 #[deprecated]
1130 #[prost(uint32, repeated, packed = "false", tag = "1")]
1131 pub upstream_actor_id: ::prost::alloc::vec::Vec<u32>,
1132 #[prost(uint32, tag = "2", wrapper = "crate::id::FragmentId")]
1133 pub upstream_fragment_id: crate::id::FragmentId,
1134 #[prost(enumeration = "DispatcherType", tag = "3")]
1137 pub upstream_dispatcher_type: i32,
1138 #[deprecated]
1140 #[prost(message, repeated, tag = "4")]
1141 pub fields: ::prost::alloc::vec::Vec<super::plan_common::Field>,
1142}
1143#[derive(prost_helpers::AnyPB)]
1146#[derive(Clone, PartialEq, ::prost::Message)]
1147pub struct ExchangeNode {
1148 #[prost(message, optional, tag = "1")]
1149 pub strategy: ::core::option::Option<DispatchStrategy>,
1150}
1151#[derive(prost_helpers::AnyPB)]
1156#[derive(Clone, PartialEq, ::prost::Message)]
1157pub struct StreamScanNode {
1158 #[prost(uint32, tag = "1", wrapper = "crate::id::TableId")]
1159 pub table_id: crate::id::TableId,
1160 #[prost(int32, repeated, tag = "2")]
1164 pub upstream_column_ids: ::prost::alloc::vec::Vec<i32>,
1165 #[prost(uint32, repeated, tag = "3")]
1169 pub output_indices: ::prost::alloc::vec::Vec<u32>,
1170 #[prost(enumeration = "StreamScanType", tag = "4")]
1175 pub stream_scan_type: i32,
1176 #[prost(message, optional, tag = "5")]
1178 pub state_table: ::core::option::Option<super::catalog::Table>,
1179 #[prost(message, optional, tag = "7")]
1182 pub table_desc: ::core::option::Option<super::plan_common::StorageTableDesc>,
1183 #[prost(uint32, optional, tag = "8")]
1185 pub rate_limit: ::core::option::Option<u32>,
1186 #[deprecated]
1188 #[prost(uint32, tag = "9")]
1189 pub snapshot_read_barrier_interval: u32,
1190 #[prost(message, optional, tag = "10")]
1193 pub arrangement_table: ::core::option::Option<super::catalog::Table>,
1194 #[prost(uint64, optional, tag = "11")]
1195 pub snapshot_backfill_epoch: ::core::option::Option<u64>,
1196}
1197#[derive(prost_helpers::AnyPB)]
1199#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1200pub struct StreamCdcScanOptions {
1201 #[prost(bool, tag = "1")]
1203 pub disable_backfill: bool,
1204 #[prost(uint32, tag = "2")]
1205 pub snapshot_barrier_interval: u32,
1206 #[prost(uint32, tag = "3")]
1207 pub snapshot_batch_size: u32,
1208 #[prost(uint32, tag = "4")]
1209 pub backfill_parallelism: u32,
1210 #[prost(uint64, tag = "5")]
1211 pub backfill_num_rows_per_split: u64,
1212 #[prost(bool, tag = "6")]
1213 pub backfill_as_even_splits: bool,
1214 #[prost(uint32, tag = "7")]
1215 pub backfill_split_pk_column_index: u32,
1216}
1217#[derive(prost_helpers::AnyPB)]
1218#[derive(Clone, PartialEq, ::prost::Message)]
1219pub struct StreamCdcScanNode {
1220 #[prost(uint32, tag = "1", wrapper = "crate::id::TableId")]
1221 pub table_id: crate::id::TableId,
1222 #[prost(int32, repeated, tag = "2")]
1225 pub upstream_column_ids: ::prost::alloc::vec::Vec<i32>,
1226 #[prost(uint32, repeated, tag = "3")]
1228 pub output_indices: ::prost::alloc::vec::Vec<u32>,
1229 #[prost(message, optional, tag = "4")]
1231 pub state_table: ::core::option::Option<super::catalog::Table>,
1232 #[prost(message, optional, tag = "5")]
1234 pub cdc_table_desc: ::core::option::Option<super::plan_common::ExternalTableDesc>,
1235 #[prost(uint32, optional, tag = "6")]
1237 pub rate_limit: ::core::option::Option<u32>,
1238 #[prost(bool, tag = "7")]
1241 pub disable_backfill: bool,
1242 #[prost(message, optional, tag = "8")]
1243 pub options: ::core::option::Option<StreamCdcScanOptions>,
1244}
1245#[derive(prost_helpers::AnyPB)]
1249#[derive(Clone, PartialEq, ::prost::Message)]
1250pub struct BatchPlanNode {
1251 #[prost(message, optional, tag = "1")]
1252 pub table_desc: ::core::option::Option<super::plan_common::StorageTableDesc>,
1253 #[prost(int32, repeated, tag = "2")]
1254 pub column_ids: ::prost::alloc::vec::Vec<i32>,
1255}
1256#[derive(prost_helpers::AnyPB)]
1257#[derive(Clone, PartialEq, ::prost::Message)]
1258pub struct ArrangementInfo {
1259 #[prost(message, repeated, tag = "1")]
1262 pub arrange_key_orders: ::prost::alloc::vec::Vec<super::common::ColumnOrder>,
1263 #[prost(message, repeated, tag = "2")]
1265 pub column_descs: ::prost::alloc::vec::Vec<super::plan_common::ColumnDesc>,
1266 #[prost(message, optional, tag = "4")]
1268 pub table_desc: ::core::option::Option<super::plan_common::StorageTableDesc>,
1269 #[prost(uint32, repeated, tag = "5")]
1271 pub output_col_idx: ::prost::alloc::vec::Vec<u32>,
1272}
1273#[derive(prost_helpers::AnyPB)]
1276#[derive(Clone, PartialEq, ::prost::Message)]
1277pub struct ArrangeNode {
1278 #[prost(message, optional, tag = "1")]
1280 pub table_info: ::core::option::Option<ArrangementInfo>,
1281 #[prost(uint32, repeated, tag = "2")]
1283 pub distribution_key: ::prost::alloc::vec::Vec<u32>,
1284 #[prost(message, optional, tag = "3")]
1286 pub table: ::core::option::Option<super::catalog::Table>,
1287}
1288#[derive(prost_helpers::AnyPB)]
1290#[derive(Clone, PartialEq, ::prost::Message)]
1291pub struct LookupNode {
1292 #[prost(int32, repeated, tag = "1")]
1294 pub arrange_key: ::prost::alloc::vec::Vec<i32>,
1295 #[prost(int32, repeated, tag = "2")]
1297 pub stream_key: ::prost::alloc::vec::Vec<i32>,
1298 #[prost(bool, tag = "3")]
1300 pub use_current_epoch: bool,
1301 #[prost(int32, repeated, tag = "4")]
1305 pub column_mapping: ::prost::alloc::vec::Vec<i32>,
1306 #[prost(message, optional, tag = "7")]
1308 pub arrangement_table_info: ::core::option::Option<ArrangementInfo>,
1309 #[prost(oneof = "lookup_node::ArrangementTableId", tags = "5, 6")]
1310 pub arrangement_table_id: ::core::option::Option<lookup_node::ArrangementTableId>,
1311}
1312pub mod lookup_node {
1314 #[derive(prost_helpers::AnyPB)]
1315 #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
1316 pub enum ArrangementTableId {
1317 #[prost(uint32, tag = "5", wrapper = "crate::id::TableId")]
1319 TableId(crate::id::TableId),
1320 #[prost(uint32, tag = "6", wrapper = "crate::id::TableId")]
1322 IndexId(crate::id::TableId),
1323 }
1324}
1325#[derive(prost_helpers::AnyPB)]
1327#[derive(Clone, PartialEq, ::prost::Message)]
1328pub struct WatermarkFilterNode {
1329 #[prost(message, repeated, tag = "1")]
1331 pub watermark_descs: ::prost::alloc::vec::Vec<super::catalog::WatermarkDesc>,
1332 #[prost(message, repeated, tag = "2")]
1334 pub tables: ::prost::alloc::vec::Vec<super::catalog::Table>,
1335}
1336#[derive(prost_helpers::AnyPB)]
1338#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1339pub struct UnionNode {}
1340#[derive(prost_helpers::AnyPB)]
1342#[derive(Clone, PartialEq, ::prost::Message)]
1343pub struct LookupUnionNode {
1344 #[prost(uint32, repeated, tag = "1")]
1345 pub order: ::prost::alloc::vec::Vec<u32>,
1346}
1347#[derive(prost_helpers::AnyPB)]
1348#[derive(Clone, PartialEq, ::prost::Message)]
1349pub struct ExpandNode {
1350 #[prost(message, repeated, tag = "1")]
1351 pub column_subsets: ::prost::alloc::vec::Vec<expand_node::Subset>,
1352}
1353pub mod expand_node {
1355 #[derive(prost_helpers::AnyPB)]
1356 #[derive(Clone, PartialEq, ::prost::Message)]
1357 pub struct Subset {
1358 #[prost(uint32, repeated, tag = "1")]
1359 pub column_indices: ::prost::alloc::vec::Vec<u32>,
1360 }
1361}
1362#[derive(prost_helpers::AnyPB)]
1363#[derive(Clone, PartialEq, ::prost::Message)]
1364pub struct ProjectSetNode {
1365 #[prost(message, repeated, tag = "1")]
1366 pub select_list: ::prost::alloc::vec::Vec<super::expr::ProjectSetSelectItem>,
1367 #[prost(uint32, repeated, tag = "2")]
1371 pub watermark_input_cols: ::prost::alloc::vec::Vec<u32>,
1372 #[prost(uint32, repeated, tag = "3")]
1373 pub watermark_expr_indices: ::prost::alloc::vec::Vec<u32>,
1374 #[prost(uint32, repeated, tag = "4")]
1375 pub nondecreasing_exprs: ::prost::alloc::vec::Vec<u32>,
1376}
1377#[derive(prost_helpers::AnyPB)]
1379#[derive(Clone, PartialEq, ::prost::Message)]
1380pub struct SortNode {
1381 #[prost(message, optional, tag = "1")]
1383 pub state_table: ::core::option::Option<super::catalog::Table>,
1384 #[prost(uint32, tag = "2")]
1386 pub sort_column_index: u32,
1387}
1388#[derive(prost_helpers::AnyPB)]
1390#[derive(Clone, PartialEq, ::prost::Message)]
1391pub struct DmlNode {
1392 #[prost(uint32, tag = "1", wrapper = "crate::id::TableId")]
1394 pub table_id: crate::id::TableId,
1395 #[prost(uint64, tag = "3")]
1397 pub table_version_id: u64,
1398 #[prost(message, repeated, tag = "2")]
1400 pub column_descs: ::prost::alloc::vec::Vec<super::plan_common::ColumnDesc>,
1401 #[prost(uint32, optional, tag = "4")]
1402 pub rate_limit: ::core::option::Option<u32>,
1403}
1404#[derive(prost_helpers::AnyPB)]
1405#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1406pub struct RowIdGenNode {
1407 #[prost(uint64, tag = "1")]
1408 pub row_id_index: u64,
1409}
1410#[derive(prost_helpers::AnyPB)]
1411#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1412pub struct NowModeUpdateCurrent {}
1413#[derive(prost_helpers::AnyPB)]
1414#[derive(Clone, PartialEq, ::prost::Message)]
1415pub struct NowModeGenerateSeries {
1416 #[prost(message, optional, tag = "1")]
1417 pub start_timestamp: ::core::option::Option<super::data::Datum>,
1418 #[prost(message, optional, tag = "2")]
1419 pub interval: ::core::option::Option<super::data::Datum>,
1420}
1421#[derive(prost_helpers::AnyPB)]
1422#[derive(Clone, PartialEq, ::prost::Message)]
1423pub struct NowNode {
1424 #[prost(message, optional, tag = "1")]
1426 pub state_table: ::core::option::Option<super::catalog::Table>,
1427 #[prost(oneof = "now_node::Mode", tags = "101, 102")]
1428 pub mode: ::core::option::Option<now_node::Mode>,
1429}
1430pub mod now_node {
1432 #[derive(prost_helpers::AnyPB)]
1433 #[derive(Clone, PartialEq, ::prost::Oneof)]
1434 pub enum Mode {
1435 #[prost(message, tag = "101")]
1436 UpdateCurrent(super::NowModeUpdateCurrent),
1437 #[prost(message, tag = "102")]
1438 GenerateSeries(super::NowModeGenerateSeries),
1439 }
1440}
1441#[derive(prost_helpers::AnyPB)]
1442#[derive(Clone, PartialEq, ::prost::Message)]
1443pub struct ValuesNode {
1444 #[prost(message, repeated, tag = "1")]
1445 pub tuples: ::prost::alloc::vec::Vec<values_node::ExprTuple>,
1446 #[prost(message, repeated, tag = "2")]
1447 pub fields: ::prost::alloc::vec::Vec<super::plan_common::Field>,
1448}
1449pub mod values_node {
1451 #[derive(prost_helpers::AnyPB)]
1452 #[derive(Clone, PartialEq, ::prost::Message)]
1453 pub struct ExprTuple {
1454 #[prost(message, repeated, tag = "1")]
1455 pub cells: ::prost::alloc::vec::Vec<super::super::expr::ExprNode>,
1456 }
1457}
1458#[derive(prost_helpers::AnyPB)]
1459#[derive(Clone, PartialEq, ::prost::Message)]
1460pub struct DedupNode {
1461 #[prost(message, optional, tag = "1")]
1462 pub state_table: ::core::option::Option<super::catalog::Table>,
1463 #[prost(uint32, repeated, tag = "2")]
1464 pub dedup_column_indices: ::prost::alloc::vec::Vec<u32>,
1465}
1466#[derive(prost_helpers::AnyPB)]
1467#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1468pub struct NoOpNode {}
1469#[derive(prost_helpers::AnyPB)]
1470#[derive(Clone, PartialEq, ::prost::Message)]
1471pub struct EowcOverWindowNode {
1472 #[prost(message, repeated, tag = "1")]
1473 pub calls: ::prost::alloc::vec::Vec<super::expr::WindowFunction>,
1474 #[prost(uint32, repeated, tag = "2")]
1475 pub partition_by: ::prost::alloc::vec::Vec<u32>,
1476 #[prost(message, repeated, tag = "3")]
1478 pub order_by: ::prost::alloc::vec::Vec<super::common::ColumnOrder>,
1479 #[prost(message, optional, tag = "4")]
1480 pub state_table: ::core::option::Option<super::catalog::Table>,
1481}
1482#[derive(prost_helpers::AnyPB)]
1483#[derive(Clone, PartialEq, ::prost::Message)]
1484pub struct OverWindowNode {
1485 #[prost(message, repeated, tag = "1")]
1486 pub calls: ::prost::alloc::vec::Vec<super::expr::WindowFunction>,
1487 #[prost(uint32, repeated, tag = "2")]
1488 pub partition_by: ::prost::alloc::vec::Vec<u32>,
1489 #[prost(message, repeated, tag = "3")]
1490 pub order_by: ::prost::alloc::vec::Vec<super::common::ColumnOrder>,
1491 #[prost(message, optional, tag = "4")]
1492 pub state_table: ::core::option::Option<super::catalog::Table>,
1493 #[deprecated]
1495 #[prost(enumeration = "OverWindowCachePolicy", tag = "5")]
1496 pub cache_policy: i32,
1497}
1498#[derive(prost_helpers::AnyPB)]
1499#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1500pub struct LocalApproxPercentileNode {
1501 #[prost(double, tag = "1")]
1502 pub base: f64,
1503 #[prost(uint32, tag = "2")]
1504 pub percentile_index: u32,
1505}
1506#[derive(prost_helpers::AnyPB)]
1507#[derive(Clone, PartialEq, ::prost::Message)]
1508pub struct GlobalApproxPercentileNode {
1509 #[prost(double, tag = "1")]
1510 pub base: f64,
1511 #[prost(double, tag = "2")]
1512 pub quantile: f64,
1513 #[prost(message, optional, tag = "3")]
1514 pub bucket_state_table: ::core::option::Option<super::catalog::Table>,
1515 #[prost(message, optional, tag = "4")]
1516 pub count_state_table: ::core::option::Option<super::catalog::Table>,
1517}
1518#[derive(prost_helpers::AnyPB)]
1519#[derive(Clone, PartialEq, ::prost::Message)]
1520pub struct RowMergeNode {
1521 #[prost(message, optional, tag = "1")]
1522 pub lhs_mapping: ::core::option::Option<super::catalog::ColIndexMapping>,
1523 #[prost(message, optional, tag = "2")]
1524 pub rhs_mapping: ::core::option::Option<super::catalog::ColIndexMapping>,
1525}
1526#[derive(prost_helpers::AnyPB)]
1527#[derive(Clone, PartialEq, ::prost::Message)]
1528pub struct SyncLogStoreNode {
1529 #[prost(message, optional, tag = "1")]
1530 pub log_store_table: ::core::option::Option<super::catalog::Table>,
1531 #[deprecated]
1533 #[prost(uint32, optional, tag = "2")]
1534 pub pause_duration_ms: ::core::option::Option<u32>,
1535 #[deprecated]
1537 #[prost(uint32, optional, tag = "3")]
1538 pub buffer_size: ::core::option::Option<u32>,
1539 #[prost(bool, tag = "4")]
1540 pub aligned: bool,
1541}
1542#[derive(prost_helpers::AnyPB)]
1543#[derive(Clone, PartialEq, ::prost::Message)]
1544pub struct MaterializedExprsNode {
1545 #[prost(message, repeated, tag = "1")]
1546 pub exprs: ::prost::alloc::vec::Vec<super::expr::ExprNode>,
1547 #[prost(message, optional, tag = "2")]
1548 pub state_table: ::core::option::Option<super::catalog::Table>,
1549 #[prost(uint32, optional, tag = "3")]
1550 pub state_clean_col_idx: ::core::option::Option<u32>,
1551}
1552#[derive(prost_helpers::AnyPB)]
1553#[derive(Clone, PartialEq, ::prost::Message)]
1554pub struct VectorIndexWriteNode {
1555 #[prost(message, optional, tag = "1")]
1556 pub table: ::core::option::Option<super::catalog::Table>,
1557}
1558#[derive(prost_helpers::AnyPB)]
1559#[derive(Clone, PartialEq, ::prost::Message)]
1560pub struct VectorIndexLookupJoinNode {
1561 #[prost(message, optional, tag = "1")]
1562 pub reader_desc: ::core::option::Option<super::plan_common::VectorIndexReaderDesc>,
1563 #[prost(uint32, tag = "2")]
1564 pub vector_column_idx: u32,
1565}
1566#[derive(prost_helpers::AnyPB)]
1567#[derive(Clone, PartialEq, ::prost::Message)]
1568pub struct UpstreamSinkUnionNode {
1569 #[prost(message, repeated, tag = "1")]
1572 pub init_upstreams: ::prost::alloc::vec::Vec<UpstreamSinkInfo>,
1573}
1574#[derive(prost_helpers::AnyPB)]
1575#[derive(Clone, PartialEq, ::prost::Message)]
1576pub struct LocalityProviderNode {
1577 #[prost(uint32, repeated, tag = "1")]
1579 pub locality_columns: ::prost::alloc::vec::Vec<u32>,
1580 #[prost(message, optional, tag = "2")]
1582 pub state_table: ::core::option::Option<super::catalog::Table>,
1583 #[prost(message, optional, tag = "3")]
1585 pub progress_table: ::core::option::Option<super::catalog::Table>,
1586}
1587#[derive(prost_helpers::AnyPB)]
1588#[derive(Clone, PartialEq, ::prost::Message)]
1589pub struct EowcGapFillNode {
1590 #[prost(uint32, tag = "1")]
1591 pub time_column_index: u32,
1592 #[prost(message, optional, tag = "2")]
1593 pub interval: ::core::option::Option<super::expr::ExprNode>,
1594 #[prost(uint32, repeated, tag = "3")]
1595 pub fill_columns: ::prost::alloc::vec::Vec<u32>,
1596 #[prost(string, repeated, tag = "4")]
1597 pub fill_strategies: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1598 #[prost(message, optional, tag = "5")]
1599 pub buffer_table: ::core::option::Option<super::catalog::Table>,
1600 #[prost(message, optional, tag = "6")]
1601 pub prev_row_table: ::core::option::Option<super::catalog::Table>,
1602}
1603#[derive(prost_helpers::AnyPB)]
1604#[derive(Clone, PartialEq, ::prost::Message)]
1605pub struct GapFillNode {
1606 #[prost(uint32, tag = "1")]
1607 pub time_column_index: u32,
1608 #[prost(message, optional, tag = "2")]
1609 pub interval: ::core::option::Option<super::expr::ExprNode>,
1610 #[prost(uint32, repeated, tag = "3")]
1611 pub fill_columns: ::prost::alloc::vec::Vec<u32>,
1612 #[prost(string, repeated, tag = "4")]
1613 pub fill_strategies: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1614 #[prost(message, optional, tag = "5")]
1615 pub state_table: ::core::option::Option<super::catalog::Table>,
1616}
1617#[derive(prost_helpers::AnyPB)]
1618#[derive(Clone, PartialEq, ::prost::Message)]
1619pub struct StreamNode {
1620 #[prost(uint64, tag = "1", wrapper = "crate::id::StreamNodeLocalOperatorId")]
1623 pub operator_id: crate::id::StreamNodeLocalOperatorId,
1624 #[prost(message, repeated, tag = "3")]
1626 pub input: ::prost::alloc::vec::Vec<StreamNode>,
1627 #[prost(uint32, repeated, tag = "2")]
1628 pub stream_key: ::prost::alloc::vec::Vec<u32>,
1629 #[prost(enumeration = "stream_node::StreamKind", tag = "24")]
1630 pub stream_kind: i32,
1631 #[prost(string, tag = "18")]
1632 pub identity: ::prost::alloc::string::String,
1633 #[prost(message, repeated, tag = "19")]
1635 pub fields: ::prost::alloc::vec::Vec<super::plan_common::Field>,
1636 #[prost(
1637 oneof = "stream_node::NodeBody",
1638 tags = "100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155"
1639 )]
1640 pub node_body: ::core::option::Option<stream_node::NodeBody>,
1641}
1642pub mod stream_node {
1644 #[derive(prost_helpers::AnyPB)]
1647 #[derive(
1648 Clone,
1649 Copy,
1650 Debug,
1651 PartialEq,
1652 Eq,
1653 Hash,
1654 PartialOrd,
1655 Ord,
1656 ::prost::Enumeration
1657 )]
1658 #[repr(i32)]
1659 pub enum StreamKind {
1660 Retract = 0,
1662 AppendOnly = 1,
1663 Upsert = 2,
1664 }
1665 impl StreamKind {
1666 pub fn as_str_name(&self) -> &'static str {
1671 match self {
1672 Self::Retract => "STREAM_KIND_RETRACT",
1673 Self::AppendOnly => "STREAM_KIND_APPEND_ONLY",
1674 Self::Upsert => "STREAM_KIND_UPSERT",
1675 }
1676 }
1677 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1679 match value {
1680 "STREAM_KIND_RETRACT" => Some(Self::Retract),
1681 "STREAM_KIND_APPEND_ONLY" => Some(Self::AppendOnly),
1682 "STREAM_KIND_UPSERT" => Some(Self::Upsert),
1683 _ => None,
1684 }
1685 }
1686 }
1687 #[derive(prost_helpers::AnyPB)]
1688 #[derive(::enum_as_inner::EnumAsInner, ::strum::Display, ::strum::EnumDiscriminants)]
1689 #[strum_discriminants(derive(::strum::Display, Hash))]
1690 #[derive(Clone, PartialEq, ::prost::Oneof)]
1691 pub enum NodeBody {
1692 #[prost(message, tag = "100")]
1693 Source(::prost::alloc::boxed::Box<super::SourceNode>),
1694 #[prost(message, tag = "101")]
1695 Project(::prost::alloc::boxed::Box<super::ProjectNode>),
1696 #[prost(message, tag = "102")]
1697 Filter(::prost::alloc::boxed::Box<super::FilterNode>),
1698 #[prost(message, tag = "103")]
1699 Materialize(::prost::alloc::boxed::Box<super::MaterializeNode>),
1700 #[prost(message, tag = "104")]
1701 StatelessSimpleAgg(::prost::alloc::boxed::Box<super::SimpleAggNode>),
1702 #[prost(message, tag = "105")]
1703 SimpleAgg(::prost::alloc::boxed::Box<super::SimpleAggNode>),
1704 #[prost(message, tag = "106")]
1705 HashAgg(::prost::alloc::boxed::Box<super::HashAggNode>),
1706 #[prost(message, tag = "107")]
1707 AppendOnlyTopN(::prost::alloc::boxed::Box<super::TopNNode>),
1708 #[prost(message, tag = "108")]
1709 HashJoin(::prost::alloc::boxed::Box<super::HashJoinNode>),
1710 #[prost(message, tag = "109")]
1711 TopN(::prost::alloc::boxed::Box<super::TopNNode>),
1712 #[prost(message, tag = "110")]
1713 HopWindow(::prost::alloc::boxed::Box<super::HopWindowNode>),
1714 #[prost(message, tag = "111")]
1715 Merge(::prost::alloc::boxed::Box<super::MergeNode>),
1716 #[prost(message, tag = "112")]
1717 Exchange(::prost::alloc::boxed::Box<super::ExchangeNode>),
1718 #[prost(message, tag = "113")]
1719 StreamScan(::prost::alloc::boxed::Box<super::StreamScanNode>),
1720 #[prost(message, tag = "114")]
1721 BatchPlan(::prost::alloc::boxed::Box<super::BatchPlanNode>),
1722 #[prost(message, tag = "115")]
1723 Lookup(::prost::alloc::boxed::Box<super::LookupNode>),
1724 #[prost(message, tag = "116")]
1725 Arrange(::prost::alloc::boxed::Box<super::ArrangeNode>),
1726 #[prost(message, tag = "117")]
1727 LookupUnion(::prost::alloc::boxed::Box<super::LookupUnionNode>),
1728 #[prost(message, tag = "118")]
1729 Union(super::UnionNode),
1730 #[prost(message, tag = "119")]
1731 DeltaIndexJoin(::prost::alloc::boxed::Box<super::DeltaIndexJoinNode>),
1732 #[prost(message, tag = "120")]
1733 Sink(::prost::alloc::boxed::Box<super::SinkNode>),
1734 #[prost(message, tag = "121")]
1735 Expand(::prost::alloc::boxed::Box<super::ExpandNode>),
1736 #[prost(message, tag = "122")]
1737 DynamicFilter(::prost::alloc::boxed::Box<super::DynamicFilterNode>),
1738 #[prost(message, tag = "123")]
1739 ProjectSet(::prost::alloc::boxed::Box<super::ProjectSetNode>),
1740 #[prost(message, tag = "124")]
1741 GroupTopN(::prost::alloc::boxed::Box<super::GroupTopNNode>),
1742 #[prost(message, tag = "125")]
1743 Sort(::prost::alloc::boxed::Box<super::SortNode>),
1744 #[prost(message, tag = "126")]
1745 WatermarkFilter(::prost::alloc::boxed::Box<super::WatermarkFilterNode>),
1746 #[prost(message, tag = "127")]
1747 Dml(::prost::alloc::boxed::Box<super::DmlNode>),
1748 #[prost(message, tag = "128")]
1749 RowIdGen(::prost::alloc::boxed::Box<super::RowIdGenNode>),
1750 #[prost(message, tag = "129")]
1751 Now(::prost::alloc::boxed::Box<super::NowNode>),
1752 #[prost(message, tag = "130")]
1753 AppendOnlyGroupTopN(::prost::alloc::boxed::Box<super::GroupTopNNode>),
1754 #[prost(message, tag = "131")]
1755 TemporalJoin(::prost::alloc::boxed::Box<super::TemporalJoinNode>),
1756 #[prost(message, tag = "132")]
1757 BarrierRecv(::prost::alloc::boxed::Box<super::BarrierRecvNode>),
1758 #[prost(message, tag = "133")]
1759 Values(::prost::alloc::boxed::Box<super::ValuesNode>),
1760 #[prost(message, tag = "134")]
1761 AppendOnlyDedup(::prost::alloc::boxed::Box<super::DedupNode>),
1762 #[prost(message, tag = "135")]
1763 NoOp(super::NoOpNode),
1764 #[prost(message, tag = "136")]
1765 EowcOverWindow(::prost::alloc::boxed::Box<super::EowcOverWindowNode>),
1766 #[prost(message, tag = "137")]
1767 OverWindow(::prost::alloc::boxed::Box<super::OverWindowNode>),
1768 #[prost(message, tag = "138")]
1769 StreamFsFetch(::prost::alloc::boxed::Box<super::StreamFsFetchNode>),
1770 #[prost(message, tag = "139")]
1771 StreamCdcScan(::prost::alloc::boxed::Box<super::StreamCdcScanNode>),
1772 #[prost(message, tag = "140")]
1773 CdcFilter(::prost::alloc::boxed::Box<super::CdcFilterNode>),
1774 #[prost(message, tag = "142")]
1775 SourceBackfill(::prost::alloc::boxed::Box<super::SourceBackfillNode>),
1776 #[prost(message, tag = "143")]
1777 Changelog(::prost::alloc::boxed::Box<super::ChangeLogNode>),
1778 #[prost(message, tag = "144")]
1779 LocalApproxPercentile(
1780 ::prost::alloc::boxed::Box<super::LocalApproxPercentileNode>,
1781 ),
1782 #[prost(message, tag = "145")]
1783 GlobalApproxPercentile(
1784 ::prost::alloc::boxed::Box<super::GlobalApproxPercentileNode>,
1785 ),
1786 #[prost(message, tag = "146")]
1787 RowMerge(::prost::alloc::boxed::Box<super::RowMergeNode>),
1788 #[prost(message, tag = "147")]
1789 AsOfJoin(::prost::alloc::boxed::Box<super::AsOfJoinNode>),
1790 #[prost(message, tag = "148")]
1791 SyncLogStore(::prost::alloc::boxed::Box<super::SyncLogStoreNode>),
1792 #[prost(message, tag = "149")]
1793 MaterializedExprs(::prost::alloc::boxed::Box<super::MaterializedExprsNode>),
1794 #[prost(message, tag = "150")]
1795 VectorIndexWrite(::prost::alloc::boxed::Box<super::VectorIndexWriteNode>),
1796 #[prost(message, tag = "151")]
1797 UpstreamSinkUnion(::prost::alloc::boxed::Box<super::UpstreamSinkUnionNode>),
1798 #[prost(message, tag = "152")]
1799 LocalityProvider(::prost::alloc::boxed::Box<super::LocalityProviderNode>),
1800 #[prost(message, tag = "153")]
1801 EowcGapFill(::prost::alloc::boxed::Box<super::EowcGapFillNode>),
1802 #[prost(message, tag = "154")]
1803 GapFill(::prost::alloc::boxed::Box<super::GapFillNode>),
1804 #[prost(message, tag = "155")]
1805 VectorIndexLookupJoin(
1806 ::prost::alloc::boxed::Box<super::VectorIndexLookupJoinNode>,
1807 ),
1808 }
1809}
1810#[derive(prost_helpers::AnyPB)]
1823#[derive(Clone, PartialEq, ::prost::Message)]
1824pub struct DispatchOutputMapping {
1825 #[prost(uint32, repeated, tag = "1")]
1827 pub indices: ::prost::alloc::vec::Vec<u32>,
1828 #[prost(message, repeated, tag = "2")]
1833 pub types: ::prost::alloc::vec::Vec<dispatch_output_mapping::TypePair>,
1834}
1835pub mod dispatch_output_mapping {
1837 #[derive(prost_helpers::AnyPB)]
1838 #[derive(Clone, PartialEq, ::prost::Message)]
1839 pub struct TypePair {
1840 #[prost(message, optional, tag = "1")]
1841 pub upstream: ::core::option::Option<super::super::data::DataType>,
1842 #[prost(message, optional, tag = "2")]
1843 pub downstream: ::core::option::Option<super::super::data::DataType>,
1844 }
1845}
1846#[derive(prost_helpers::AnyPB)]
1849#[derive(Clone, PartialEq, ::prost::Message)]
1850pub struct DispatchStrategy {
1851 #[prost(enumeration = "DispatcherType", tag = "1")]
1852 pub r#type: i32,
1853 #[prost(uint32, repeated, tag = "2")]
1854 pub dist_key_indices: ::prost::alloc::vec::Vec<u32>,
1855 #[prost(message, optional, tag = "3")]
1856 pub output_mapping: ::core::option::Option<DispatchOutputMapping>,
1857}
1858#[derive(prost_helpers::AnyPB)]
1861#[derive(Clone, PartialEq, ::prost::Message)]
1862pub struct Dispatcher {
1863 #[prost(enumeration = "DispatcherType", tag = "1")]
1864 pub r#type: i32,
1865 #[prost(uint32, repeated, tag = "2")]
1868 pub dist_key_indices: ::prost::alloc::vec::Vec<u32>,
1869 #[prost(message, optional, tag = "6")]
1871 pub output_mapping: ::core::option::Option<DispatchOutputMapping>,
1872 #[prost(message, optional, tag = "3")]
1875 pub hash_mapping: ::core::option::Option<ActorMapping>,
1876 #[prost(uint32, tag = "4", wrapper = "crate::id::FragmentId")]
1879 pub dispatcher_id: crate::id::FragmentId,
1880 #[prost(uint32, repeated, tag = "5", wrapper = "crate::id::ActorId")]
1882 pub downstream_actor_id: ::prost::alloc::vec::Vec<crate::id::ActorId>,
1883}
1884#[derive(prost_helpers::AnyPB)]
1886#[derive(Clone, PartialEq, ::prost::Message)]
1887pub struct StreamActor {
1888 #[prost(uint32, tag = "1", wrapper = "crate::id::ActorId")]
1889 pub actor_id: crate::id::ActorId,
1890 #[prost(uint32, tag = "2", wrapper = "crate::id::FragmentId")]
1891 pub fragment_id: crate::id::FragmentId,
1892 #[prost(message, repeated, tag = "4")]
1893 pub dispatcher: ::prost::alloc::vec::Vec<Dispatcher>,
1894 #[prost(message, optional, tag = "8")]
1897 pub vnode_bitmap: ::core::option::Option<super::common::Buffer>,
1898 #[prost(string, tag = "9")]
1900 pub mview_definition: ::prost::alloc::string::String,
1901 #[prost(message, optional, tag = "10")]
1903 pub expr_context: ::core::option::Option<super::plan_common::ExprContext>,
1904 #[prost(string, tag = "11")]
1906 pub config_override: ::prost::alloc::string::String,
1907}
1908#[derive(prost_helpers::AnyPB)]
1910#[derive(Clone, PartialEq, ::prost::Message)]
1911pub struct StreamContext {
1912 #[prost(string, tag = "1")]
1914 pub timezone: ::prost::alloc::string::String,
1915 #[prost(string, tag = "2")]
1917 pub config_override: ::prost::alloc::string::String,
1918 #[prost(string, tag = "3")]
1920 pub adaptive_parallelism_strategy: ::prost::alloc::string::String,
1921}
1922#[derive(prost_helpers::AnyPB)]
1923#[derive(Clone, PartialEq, ::prost::Message)]
1924pub struct BackfillOrder {
1925 #[prost(map = "uint32, message", tag = "1", wrapper = "crate::id::RelationId")]
1926 pub order: ::std::collections::HashMap<
1927 crate::id::RelationId,
1928 super::common::Uint32Vector,
1929 >,
1930}
1931#[derive(prost_helpers::AnyPB)]
1936#[derive(Clone, PartialEq, ::prost::Message)]
1937pub struct StreamFragmentGraph {
1938 #[prost(map = "uint32, message", tag = "1", wrapper = "crate::id::FragmentId")]
1940 pub fragments: ::std::collections::HashMap<
1941 crate::id::FragmentId,
1942 stream_fragment_graph::StreamFragment,
1943 >,
1944 #[prost(message, repeated, tag = "2")]
1946 pub edges: ::prost::alloc::vec::Vec<stream_fragment_graph::StreamFragmentEdge>,
1947 #[prost(uint32, repeated, tag = "3", wrapper = "crate::id::TableId")]
1948 pub dependent_table_ids: ::prost::alloc::vec::Vec<crate::id::TableId>,
1949 #[prost(uint32, tag = "4")]
1950 pub table_ids_cnt: u32,
1951 #[prost(message, optional, tag = "5")]
1952 pub ctx: ::core::option::Option<StreamContext>,
1953 #[prost(message, optional, tag = "6")]
1955 pub parallelism: ::core::option::Option<stream_fragment_graph::Parallelism>,
1956 #[prost(message, optional, tag = "9")]
1958 pub backfill_parallelism: ::core::option::Option<stream_fragment_graph::Parallelism>,
1959 #[prost(uint32, tag = "7")]
1969 pub max_parallelism: u32,
1970 #[prost(message, optional, tag = "8")]
1972 pub backfill_order: ::core::option::Option<BackfillOrder>,
1973}
1974pub mod stream_fragment_graph {
1976 #[derive(prost_helpers::AnyPB)]
1977 #[derive(Clone, PartialEq, ::prost::Message)]
1978 pub struct StreamFragment {
1979 #[prost(uint32, tag = "1", wrapper = "crate::id::FragmentId")]
1981 pub fragment_id: crate::id::FragmentId,
1982 #[prost(message, optional, tag = "2")]
1984 pub node: ::core::option::Option<super::StreamNode>,
1985 #[prost(uint32, tag = "3")]
1987 pub fragment_type_mask: u32,
1988 #[prost(bool, tag = "4")]
1992 pub requires_singleton: bool,
1993 }
1994 #[derive(prost_helpers::AnyPB)]
1995 #[derive(Clone, PartialEq, ::prost::Message)]
1996 pub struct StreamFragmentEdge {
1997 #[prost(message, optional, tag = "1")]
1999 pub dispatch_strategy: ::core::option::Option<super::DispatchStrategy>,
2000 #[prost(uint64, tag = "3")]
2004 pub link_id: u64,
2005 #[prost(uint32, tag = "4", wrapper = "crate::id::FragmentId")]
2006 pub upstream_id: crate::id::FragmentId,
2007 #[prost(uint32, tag = "5", wrapper = "crate::id::FragmentId")]
2008 pub downstream_id: crate::id::FragmentId,
2009 }
2010 #[derive(prost_helpers::AnyPB)]
2011 #[derive(Clone, Copy, PartialEq, ::prost::Message)]
2012 pub struct Parallelism {
2013 #[prost(uint64, tag = "1")]
2014 pub parallelism: u64,
2015 }
2016}
2017#[derive(prost_helpers::AnyPB)]
2019#[derive(Clone, PartialEq, ::prost::Message)]
2020pub struct SinkSchemaChange {
2021 #[prost(message, repeated, tag = "1")]
2024 pub original_schema: ::prost::alloc::vec::Vec<super::plan_common::Field>,
2025 #[prost(oneof = "sink_schema_change::Op", tags = "2, 3")]
2027 pub op: ::core::option::Option<sink_schema_change::Op>,
2028}
2029pub mod sink_schema_change {
2031 #[derive(prost_helpers::AnyPB)]
2033 #[derive(Clone, PartialEq, ::prost::Oneof)]
2034 pub enum Op {
2035 #[prost(message, tag = "2")]
2037 AddColumns(super::SinkAddColumnsOp),
2038 #[prost(message, tag = "3")]
2040 DropColumns(super::SinkDropColumnsOp),
2041 }
2042}
2043#[derive(prost_helpers::AnyPB)]
2045#[derive(Clone, PartialEq, ::prost::Message)]
2046pub struct SinkAddColumnsOp {
2047 #[prost(message, repeated, tag = "1")]
2049 pub fields: ::prost::alloc::vec::Vec<super::plan_common::Field>,
2050}
2051#[derive(prost_helpers::AnyPB)]
2053#[derive(Clone, PartialEq, ::prost::Message)]
2054pub struct SinkDropColumnsOp {
2055 #[prost(string, repeated, tag = "1")]
2057 pub column_names: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2058}
2059#[derive(prost_helpers::AnyPB)]
2060#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2061#[repr(i32)]
2062pub enum SinkLogStoreType {
2063 Unspecified = 0,
2065 KvLogStore = 1,
2066 InMemoryLogStore = 2,
2067}
2068impl SinkLogStoreType {
2069 pub fn as_str_name(&self) -> &'static str {
2074 match self {
2075 Self::Unspecified => "SINK_LOG_STORE_TYPE_UNSPECIFIED",
2076 Self::KvLogStore => "SINK_LOG_STORE_TYPE_KV_LOG_STORE",
2077 Self::InMemoryLogStore => "SINK_LOG_STORE_TYPE_IN_MEMORY_LOG_STORE",
2078 }
2079 }
2080 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2082 match value {
2083 "SINK_LOG_STORE_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
2084 "SINK_LOG_STORE_TYPE_KV_LOG_STORE" => Some(Self::KvLogStore),
2085 "SINK_LOG_STORE_TYPE_IN_MEMORY_LOG_STORE" => Some(Self::InMemoryLogStore),
2086 _ => None,
2087 }
2088 }
2089}
2090#[derive(prost_helpers::AnyPB)]
2091#[derive(prost_helpers::Version)]
2092#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2093#[repr(i32)]
2094pub enum AggNodeVersion {
2095 Unspecified = 0,
2096 Issue12140 = 1,
2098 Issue13465 = 2,
2100}
2101impl AggNodeVersion {
2102 pub fn as_str_name(&self) -> &'static str {
2107 match self {
2108 Self::Unspecified => "AGG_NODE_VERSION_UNSPECIFIED",
2109 Self::Issue12140 => "AGG_NODE_VERSION_ISSUE_12140",
2110 Self::Issue13465 => "AGG_NODE_VERSION_ISSUE_13465",
2111 }
2112 }
2113 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2115 match value {
2116 "AGG_NODE_VERSION_UNSPECIFIED" => Some(Self::Unspecified),
2117 "AGG_NODE_VERSION_ISSUE_12140" => Some(Self::Issue12140),
2118 "AGG_NODE_VERSION_ISSUE_13465" => Some(Self::Issue13465),
2119 _ => None,
2120 }
2121 }
2122}
2123#[derive(prost_helpers::AnyPB)]
2124#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2125#[repr(i32)]
2126pub enum InequalityType {
2127 Unspecified = 0,
2128 LessThan = 1,
2129 LessThanOrEqual = 2,
2130 GreaterThan = 3,
2131 GreaterThanOrEqual = 4,
2132}
2133impl InequalityType {
2134 pub fn as_str_name(&self) -> &'static str {
2139 match self {
2140 Self::Unspecified => "INEQUALITY_TYPE_UNSPECIFIED",
2141 Self::LessThan => "INEQUALITY_TYPE_LESS_THAN",
2142 Self::LessThanOrEqual => "INEQUALITY_TYPE_LESS_THAN_OR_EQUAL",
2143 Self::GreaterThan => "INEQUALITY_TYPE_GREATER_THAN",
2144 Self::GreaterThanOrEqual => "INEQUALITY_TYPE_GREATER_THAN_OR_EQUAL",
2145 }
2146 }
2147 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2149 match value {
2150 "INEQUALITY_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
2151 "INEQUALITY_TYPE_LESS_THAN" => Some(Self::LessThan),
2152 "INEQUALITY_TYPE_LESS_THAN_OR_EQUAL" => Some(Self::LessThanOrEqual),
2153 "INEQUALITY_TYPE_GREATER_THAN" => Some(Self::GreaterThan),
2154 "INEQUALITY_TYPE_GREATER_THAN_OR_EQUAL" => Some(Self::GreaterThanOrEqual),
2155 _ => None,
2156 }
2157 }
2158}
2159#[derive(prost_helpers::AnyPB)]
2160#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2161#[repr(i32)]
2162pub enum JoinEncodingType {
2163 Unspecified = 0,
2164 MemoryOptimized = 1,
2165 CpuOptimized = 2,
2166}
2167impl JoinEncodingType {
2168 pub fn as_str_name(&self) -> &'static str {
2173 match self {
2174 Self::Unspecified => "UNSPECIFIED",
2175 Self::MemoryOptimized => "MEMORY_OPTIMIZED",
2176 Self::CpuOptimized => "CPU_OPTIMIZED",
2177 }
2178 }
2179 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2181 match value {
2182 "UNSPECIFIED" => Some(Self::Unspecified),
2183 "MEMORY_OPTIMIZED" => Some(Self::MemoryOptimized),
2184 "CPU_OPTIMIZED" => Some(Self::CpuOptimized),
2185 _ => None,
2186 }
2187 }
2188}
2189#[derive(prost_helpers::AnyPB)]
2191#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2192#[repr(i32)]
2193pub enum StreamScanType {
2194 Unspecified = 0,
2195 Chain = 1,
2197 Rearrange = 2,
2199 Backfill = 3,
2201 UpstreamOnly = 4,
2203 ArrangementBackfill = 5,
2205 SnapshotBackfill = 6,
2207 CrossDbSnapshotBackfill = 7,
2209}
2210impl StreamScanType {
2211 pub fn as_str_name(&self) -> &'static str {
2216 match self {
2217 Self::Unspecified => "STREAM_SCAN_TYPE_UNSPECIFIED",
2218 Self::Chain => "STREAM_SCAN_TYPE_CHAIN",
2219 Self::Rearrange => "STREAM_SCAN_TYPE_REARRANGE",
2220 Self::Backfill => "STREAM_SCAN_TYPE_BACKFILL",
2221 Self::UpstreamOnly => "STREAM_SCAN_TYPE_UPSTREAM_ONLY",
2222 Self::ArrangementBackfill => "STREAM_SCAN_TYPE_ARRANGEMENT_BACKFILL",
2223 Self::SnapshotBackfill => "STREAM_SCAN_TYPE_SNAPSHOT_BACKFILL",
2224 Self::CrossDbSnapshotBackfill => {
2225 "STREAM_SCAN_TYPE_CROSS_DB_SNAPSHOT_BACKFILL"
2226 }
2227 }
2228 }
2229 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2231 match value {
2232 "STREAM_SCAN_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
2233 "STREAM_SCAN_TYPE_CHAIN" => Some(Self::Chain),
2234 "STREAM_SCAN_TYPE_REARRANGE" => Some(Self::Rearrange),
2235 "STREAM_SCAN_TYPE_BACKFILL" => Some(Self::Backfill),
2236 "STREAM_SCAN_TYPE_UPSTREAM_ONLY" => Some(Self::UpstreamOnly),
2237 "STREAM_SCAN_TYPE_ARRANGEMENT_BACKFILL" => Some(Self::ArrangementBackfill),
2238 "STREAM_SCAN_TYPE_SNAPSHOT_BACKFILL" => Some(Self::SnapshotBackfill),
2239 "STREAM_SCAN_TYPE_CROSS_DB_SNAPSHOT_BACKFILL" => {
2240 Some(Self::CrossDbSnapshotBackfill)
2241 }
2242 _ => None,
2243 }
2244 }
2245}
2246#[derive(prost_helpers::AnyPB)]
2247#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2248#[repr(i32)]
2249pub enum OverWindowCachePolicy {
2250 Unspecified = 0,
2251 Full = 1,
2252 Recent = 2,
2253 RecentFirstN = 3,
2254 RecentLastN = 4,
2255}
2256impl OverWindowCachePolicy {
2257 pub fn as_str_name(&self) -> &'static str {
2262 match self {
2263 Self::Unspecified => "OVER_WINDOW_CACHE_POLICY_UNSPECIFIED",
2264 Self::Full => "OVER_WINDOW_CACHE_POLICY_FULL",
2265 Self::Recent => "OVER_WINDOW_CACHE_POLICY_RECENT",
2266 Self::RecentFirstN => "OVER_WINDOW_CACHE_POLICY_RECENT_FIRST_N",
2267 Self::RecentLastN => "OVER_WINDOW_CACHE_POLICY_RECENT_LAST_N",
2268 }
2269 }
2270 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2272 match value {
2273 "OVER_WINDOW_CACHE_POLICY_UNSPECIFIED" => Some(Self::Unspecified),
2274 "OVER_WINDOW_CACHE_POLICY_FULL" => Some(Self::Full),
2275 "OVER_WINDOW_CACHE_POLICY_RECENT" => Some(Self::Recent),
2276 "OVER_WINDOW_CACHE_POLICY_RECENT_FIRST_N" => Some(Self::RecentFirstN),
2277 "OVER_WINDOW_CACHE_POLICY_RECENT_LAST_N" => Some(Self::RecentLastN),
2278 _ => None,
2279 }
2280 }
2281}
2282#[derive(prost_helpers::AnyPB)]
2283#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2284#[repr(i32)]
2285pub enum DispatcherType {
2286 Unspecified = 0,
2287 Hash = 1,
2289 Broadcast = 2,
2294 Simple = 3,
2296 NoShuffle = 4,
2300}
2301impl DispatcherType {
2302 pub fn as_str_name(&self) -> &'static str {
2307 match self {
2308 Self::Unspecified => "DISPATCHER_TYPE_UNSPECIFIED",
2309 Self::Hash => "DISPATCHER_TYPE_HASH",
2310 Self::Broadcast => "DISPATCHER_TYPE_BROADCAST",
2311 Self::Simple => "DISPATCHER_TYPE_SIMPLE",
2312 Self::NoShuffle => "DISPATCHER_TYPE_NO_SHUFFLE",
2313 }
2314 }
2315 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2317 match value {
2318 "DISPATCHER_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
2319 "DISPATCHER_TYPE_HASH" => Some(Self::Hash),
2320 "DISPATCHER_TYPE_BROADCAST" => Some(Self::Broadcast),
2321 "DISPATCHER_TYPE_SIMPLE" => Some(Self::Simple),
2322 "DISPATCHER_TYPE_NO_SHUFFLE" => Some(Self::NoShuffle),
2323 _ => None,
2324 }
2325 }
2326}