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 SinkAddColumns {
79 #[prost(message, repeated, tag = "1")]
80 pub fields: ::prost::alloc::vec::Vec<super::plan_common::Field>,
81}
82#[derive(prost_helpers::AnyPB)]
83#[derive(Clone, PartialEq, ::prost::Message)]
84pub struct UpdateMutation {
85 #[prost(message, repeated, tag = "1")]
87 pub dispatcher_update: ::prost::alloc::vec::Vec<update_mutation::DispatcherUpdate>,
88 #[prost(message, repeated, tag = "2")]
90 pub merge_update: ::prost::alloc::vec::Vec<update_mutation::MergeUpdate>,
91 #[prost(map = "uint32, message", tag = "3", wrapper = "crate::id::ActorId")]
93 pub actor_vnode_bitmap_update: ::std::collections::HashMap<
94 crate::id::ActorId,
95 super::common::Buffer,
96 >,
97 #[prost(uint32, repeated, tag = "4", wrapper = "crate::id::ActorId")]
99 pub dropped_actors: ::prost::alloc::vec::Vec<crate::id::ActorId>,
100 #[prost(map = "uint32, message", tag = "5", wrapper = "crate::id::ActorId")]
103 pub actor_splits: ::std::collections::HashMap<
104 crate::id::ActorId,
105 super::source::ConnectorSplits,
106 >,
107 #[prost(map = "uint32, message", tag = "6", wrapper = "crate::id::ActorId")]
110 pub actor_new_dispatchers: ::std::collections::HashMap<
111 crate::id::ActorId,
112 Dispatchers,
113 >,
114 #[prost(message, optional, tag = "7")]
116 pub actor_cdc_table_snapshot_splits: ::core::option::Option<
117 super::source::CdcTableSnapshotSplitsWithGeneration,
118 >,
119 #[prost(map = "uint32, message", tag = "8", wrapper = "crate::id::SinkId")]
120 pub sink_add_columns: ::std::collections::HashMap<crate::id::SinkId, SinkAddColumns>,
121}
122pub mod update_mutation {
124 #[derive(prost_helpers::AnyPB)]
125 #[derive(Clone, PartialEq, ::prost::Message)]
126 pub struct DispatcherUpdate {
127 #[prost(uint32, tag = "1", wrapper = "crate::id::ActorId")]
129 pub actor_id: crate::id::ActorId,
130 #[prost(uint64, tag = "2")]
131 pub dispatcher_id: u64,
132 #[prost(message, optional, tag = "3")]
135 pub hash_mapping: ::core::option::Option<super::ActorMapping>,
136 #[prost(uint32, repeated, tag = "4", wrapper = "crate::id::ActorId")]
138 pub added_downstream_actor_id: ::prost::alloc::vec::Vec<crate::id::ActorId>,
139 #[prost(uint32, repeated, tag = "5", wrapper = "crate::id::ActorId")]
141 pub removed_downstream_actor_id: ::prost::alloc::vec::Vec<crate::id::ActorId>,
142 }
143 #[derive(prost_helpers::AnyPB)]
144 #[derive(Clone, PartialEq, ::prost::Message)]
145 pub struct MergeUpdate {
146 #[prost(uint32, tag = "1", wrapper = "crate::id::ActorId")]
148 pub actor_id: crate::id::ActorId,
149 #[prost(uint32, tag = "2", wrapper = "crate::id::FragmentId")]
150 pub upstream_fragment_id: crate::id::FragmentId,
151 #[prost(uint32, optional, tag = "5", wrapper = "crate::id::FragmentId")]
155 pub new_upstream_fragment_id: ::core::option::Option<crate::id::FragmentId>,
156 #[prost(message, repeated, tag = "3")]
158 pub added_upstream_actors: ::prost::alloc::vec::Vec<
159 super::super::common::ActorInfo,
160 >,
161 #[prost(uint32, repeated, tag = "4", wrapper = "crate::id::ActorId")]
164 pub removed_upstream_actor_id: ::prost::alloc::vec::Vec<crate::id::ActorId>,
165 }
166}
167#[derive(prost_helpers::AnyPB)]
168#[derive(Clone, PartialEq, ::prost::Message)]
169pub struct SourceChangeSplitMutation {
170 #[prost(map = "uint32, message", tag = "2", wrapper = "crate::id::ActorId")]
172 pub actor_splits: ::std::collections::HashMap<
173 crate::id::ActorId,
174 super::source::ConnectorSplits,
175 >,
176}
177#[derive(prost_helpers::AnyPB)]
178#[derive(Clone, Copy, PartialEq, ::prost::Message)]
179pub struct PauseMutation {}
180#[derive(prost_helpers::AnyPB)]
181#[derive(Clone, Copy, PartialEq, ::prost::Message)]
182pub struct ResumeMutation {}
183#[derive(prost_helpers::AnyPB)]
184#[derive(Clone, PartialEq, ::prost::Message)]
185pub struct ThrottleMutation {
186 #[prost(map = "uint32, message", tag = "1", wrapper = "crate::id::ActorId")]
187 pub actor_throttle: ::std::collections::HashMap<
188 crate::id::ActorId,
189 throttle_mutation::RateLimit,
190 >,
191}
192pub mod throttle_mutation {
194 #[derive(prost_helpers::AnyPB)]
195 #[derive(Clone, Copy, PartialEq, ::prost::Message)]
196 pub struct RateLimit {
197 #[prost(uint32, optional, tag = "1")]
198 pub rate_limit: ::core::option::Option<u32>,
199 }
200}
201#[derive(prost_helpers::AnyPB)]
202#[derive(Clone, Copy, PartialEq, ::prost::Message)]
203pub struct SubscriptionUpstreamInfo {
204 #[prost(uint32, tag = "1", wrapper = "crate::id::SubscriberId")]
206 pub subscriber_id: crate::id::SubscriberId,
207 #[prost(uint32, tag = "2", wrapper = "crate::id::TableId")]
208 pub upstream_mv_table_id: crate::id::TableId,
209}
210#[derive(prost_helpers::AnyPB)]
211#[derive(Clone, PartialEq, ::prost::Message)]
212pub struct DropSubscriptionsMutation {
213 #[prost(message, repeated, tag = "1")]
214 pub info: ::prost::alloc::vec::Vec<SubscriptionUpstreamInfo>,
215}
216#[derive(prost_helpers::AnyPB)]
217#[derive(Clone, PartialEq, ::prost::Message)]
218pub struct ConnectorPropsChangeMutation {
219 #[prost(map = "uint32, message", tag = "1")]
220 pub connector_props_infos: ::std::collections::HashMap<
221 u32,
222 connector_props_change_mutation::ConnectorPropsInfo,
223 >,
224}
225pub mod connector_props_change_mutation {
227 #[derive(prost_helpers::AnyPB)]
228 #[derive(Clone, PartialEq, ::prost::Message)]
229 pub struct ConnectorPropsInfo {
230 #[prost(map = "string, string", tag = "1")]
231 pub connector_props_info: ::std::collections::HashMap<
232 ::prost::alloc::string::String,
233 ::prost::alloc::string::String,
234 >,
235 }
236}
237#[derive(prost_helpers::AnyPB)]
238#[derive(Clone, PartialEq, ::prost::Message)]
239pub struct StartFragmentBackfillMutation {
240 #[prost(uint32, repeated, tag = "1", wrapper = "crate::id::FragmentId")]
241 pub fragment_ids: ::prost::alloc::vec::Vec<crate::id::FragmentId>,
242}
243#[derive(prost_helpers::AnyPB)]
244#[derive(Clone, Copy, PartialEq, ::prost::Message)]
245pub struct RefreshStartMutation {
246 #[prost(uint32, tag = "1", wrapper = "crate::id::TableId")]
248 pub table_id: crate::id::TableId,
249 #[prost(uint32, tag = "2", wrapper = "crate::id::SourceId")]
251 pub associated_source_id: crate::id::SourceId,
252}
253#[derive(prost_helpers::AnyPB)]
254#[derive(Clone, Copy, PartialEq, ::prost::Message)]
255pub struct ListFinishMutation {
256 #[prost(uint32, tag = "1", wrapper = "crate::id::SourceId")]
258 pub associated_source_id: crate::id::SourceId,
259}
260#[derive(prost_helpers::AnyPB)]
261#[derive(Clone, Copy, PartialEq, ::prost::Message)]
262pub struct LoadFinishMutation {
263 #[prost(uint32, tag = "1", wrapper = "crate::id::SourceId")]
265 pub associated_source_id: crate::id::SourceId,
266}
267#[derive(prost_helpers::AnyPB)]
268#[derive(Clone, PartialEq, ::prost::Message)]
269pub struct BarrierMutation {
270 #[prost(
271 oneof = "barrier_mutation::Mutation",
272 tags = "3, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16, 17"
273 )]
274 pub mutation: ::core::option::Option<barrier_mutation::Mutation>,
275}
276pub mod barrier_mutation {
278 #[derive(prost_helpers::AnyPB)]
279 #[derive(Clone, PartialEq, ::prost::Oneof)]
280 pub enum Mutation {
281 #[prost(message, tag = "3")]
283 Add(super::AddMutation),
284 #[prost(message, tag = "4")]
287 Stop(super::StopMutation),
288 #[prost(message, tag = "5")]
290 Update(super::UpdateMutation),
291 #[prost(message, tag = "6")]
293 Splits(super::SourceChangeSplitMutation),
294 #[prost(message, tag = "7")]
296 Pause(super::PauseMutation),
297 #[prost(message, tag = "8")]
299 Resume(super::ResumeMutation),
300 #[prost(message, tag = "10")]
302 Throttle(super::ThrottleMutation),
303 #[prost(message, tag = "12")]
305 DropSubscriptions(super::DropSubscriptionsMutation),
306 #[prost(message, tag = "13")]
308 ConnectorPropsChange(super::ConnectorPropsChangeMutation),
309 #[prost(message, tag = "14")]
315 StartFragmentBackfill(super::StartFragmentBackfillMutation),
316 #[prost(message, tag = "15")]
318 RefreshStart(super::RefreshStartMutation),
319 #[prost(message, tag = "16")]
321 LoadFinish(super::LoadFinishMutation),
322 #[prost(message, tag = "17")]
324 ListFinish(super::ListFinishMutation),
325 }
326}
327#[derive(prost_helpers::AnyPB)]
328#[derive(Clone, PartialEq, ::prost::Message)]
329pub struct Barrier {
330 #[prost(message, optional, tag = "1")]
331 pub epoch: ::core::option::Option<super::data::Epoch>,
332 #[prost(message, optional, tag = "3")]
333 pub mutation: ::core::option::Option<BarrierMutation>,
334 #[prost(map = "string, string", tag = "2")]
336 pub tracing_context: ::std::collections::HashMap<
337 ::prost::alloc::string::String,
338 ::prost::alloc::string::String,
339 >,
340 #[prost(enumeration = "barrier::BarrierKind", tag = "9")]
342 pub kind: i32,
343}
344pub mod barrier {
346 #[derive(prost_helpers::AnyPB)]
347 #[derive(::enum_as_inner::EnumAsInner)]
348 #[derive(
349 Clone,
350 Copy,
351 Debug,
352 PartialEq,
353 Eq,
354 Hash,
355 PartialOrd,
356 Ord,
357 ::prost::Enumeration
358 )]
359 #[repr(i32)]
360 pub enum BarrierKind {
361 Unspecified = 0,
362 Initial = 1,
365 Barrier = 2,
367 Checkpoint = 3,
369 }
370 impl BarrierKind {
371 pub fn as_str_name(&self) -> &'static str {
376 match self {
377 Self::Unspecified => "BARRIER_KIND_UNSPECIFIED",
378 Self::Initial => "BARRIER_KIND_INITIAL",
379 Self::Barrier => "BARRIER_KIND_BARRIER",
380 Self::Checkpoint => "BARRIER_KIND_CHECKPOINT",
381 }
382 }
383 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
385 match value {
386 "BARRIER_KIND_UNSPECIFIED" => Some(Self::Unspecified),
387 "BARRIER_KIND_INITIAL" => Some(Self::Initial),
388 "BARRIER_KIND_BARRIER" => Some(Self::Barrier),
389 "BARRIER_KIND_CHECKPOINT" => Some(Self::Checkpoint),
390 _ => None,
391 }
392 }
393 }
394}
395#[derive(prost_helpers::AnyPB)]
396#[derive(Clone, PartialEq, ::prost::Message)]
397pub struct Watermark {
398 #[prost(message, optional, tag = "1")]
400 pub column: ::core::option::Option<super::expr::InputRef>,
401 #[prost(message, optional, tag = "3")]
403 pub val: ::core::option::Option<super::data::Datum>,
404}
405#[derive(prost_helpers::AnyPB)]
406#[derive(Clone, PartialEq, ::prost::Message)]
407pub struct StreamMessage {
408 #[prost(oneof = "stream_message::StreamMessage", tags = "1, 2, 3")]
409 pub stream_message: ::core::option::Option<stream_message::StreamMessage>,
410}
411pub mod stream_message {
413 #[derive(prost_helpers::AnyPB)]
414 #[derive(Clone, PartialEq, ::prost::Oneof)]
415 pub enum StreamMessage {
416 #[prost(message, tag = "1")]
417 StreamChunk(super::super::data::StreamChunk),
418 #[prost(message, tag = "2")]
419 Barrier(super::Barrier),
420 #[prost(message, tag = "3")]
421 Watermark(super::Watermark),
422 }
423}
424#[derive(prost_helpers::AnyPB)]
425#[derive(Clone, PartialEq, ::prost::Message)]
426pub struct StreamMessageBatch {
427 #[prost(oneof = "stream_message_batch::StreamMessageBatch", tags = "1, 2, 3")]
428 pub stream_message_batch: ::core::option::Option<
429 stream_message_batch::StreamMessageBatch,
430 >,
431}
432pub mod stream_message_batch {
434 #[derive(prost_helpers::AnyPB)]
435 #[derive(Clone, PartialEq, ::prost::Message)]
436 pub struct BarrierBatch {
437 #[prost(message, repeated, tag = "1")]
438 pub barriers: ::prost::alloc::vec::Vec<super::Barrier>,
439 }
440 #[derive(prost_helpers::AnyPB)]
441 #[derive(Clone, PartialEq, ::prost::Oneof)]
442 pub enum StreamMessageBatch {
443 #[prost(message, tag = "1")]
444 StreamChunk(super::super::data::StreamChunk),
445 #[prost(message, tag = "2")]
446 BarrierBatch(BarrierBatch),
447 #[prost(message, tag = "3")]
448 Watermark(super::Watermark),
449 }
450}
451#[derive(prost_helpers::AnyPB)]
453#[derive(Clone, PartialEq, ::prost::Message)]
454pub struct ActorMapping {
455 #[prost(uint32, repeated, tag = "1")]
456 pub original_indices: ::prost::alloc::vec::Vec<u32>,
457 #[prost(uint32, repeated, tag = "2", wrapper = "crate::id::ActorId")]
458 pub data: ::prost::alloc::vec::Vec<crate::id::ActorId>,
459}
460#[derive(prost_helpers::AnyPB)]
461#[derive(Clone, PartialEq, ::prost::Message)]
462pub struct Columns {
463 #[prost(message, repeated, tag = "1")]
464 pub columns: ::prost::alloc::vec::Vec<super::plan_common::ColumnCatalog>,
465}
466#[derive(prost_helpers::AnyPB)]
467#[derive(Clone, PartialEq, ::prost::Message)]
468pub struct StreamSource {
469 #[prost(uint32, tag = "1", wrapper = "crate::id::SourceId")]
470 pub source_id: crate::id::SourceId,
471 #[prost(message, optional, tag = "2")]
472 pub state_table: ::core::option::Option<super::catalog::Table>,
473 #[prost(uint32, optional, tag = "3")]
474 pub row_id_index: ::core::option::Option<u32>,
475 #[prost(message, repeated, tag = "4")]
476 pub columns: ::prost::alloc::vec::Vec<super::plan_common::ColumnCatalog>,
477 #[prost(btree_map = "string, string", tag = "6")]
478 pub with_properties: ::prost::alloc::collections::BTreeMap<
479 ::prost::alloc::string::String,
480 ::prost::alloc::string::String,
481 >,
482 #[prost(message, optional, tag = "7")]
483 pub info: ::core::option::Option<super::catalog::StreamSourceInfo>,
484 #[prost(string, tag = "8")]
485 pub source_name: ::prost::alloc::string::String,
486 #[prost(uint32, optional, tag = "9")]
488 pub rate_limit: ::core::option::Option<u32>,
489 #[prost(btree_map = "string, message", tag = "10")]
490 pub secret_refs: ::prost::alloc::collections::BTreeMap<
491 ::prost::alloc::string::String,
492 super::secret::SecretRef,
493 >,
494 #[prost(message, optional, tag = "11")]
496 pub downstream_columns: ::core::option::Option<Columns>,
497 #[prost(message, optional, tag = "12")]
498 pub refresh_mode: ::core::option::Option<super::plan_common::SourceRefreshMode>,
499 #[prost(uint32, optional, tag = "13", wrapper = "crate::id::TableId")]
500 pub associated_table_id: ::core::option::Option<crate::id::TableId>,
501}
502#[derive(prost_helpers::AnyPB)]
504#[derive(Clone, PartialEq, ::prost::Message)]
505pub struct StreamFsFetch {
506 #[prost(uint32, tag = "1", wrapper = "crate::id::SourceId")]
507 pub source_id: crate::id::SourceId,
508 #[prost(message, optional, tag = "2")]
509 pub state_table: ::core::option::Option<super::catalog::Table>,
510 #[prost(uint32, optional, tag = "3")]
511 pub row_id_index: ::core::option::Option<u32>,
512 #[prost(message, repeated, tag = "4")]
513 pub columns: ::prost::alloc::vec::Vec<super::plan_common::ColumnCatalog>,
514 #[prost(btree_map = "string, string", tag = "6")]
515 pub with_properties: ::prost::alloc::collections::BTreeMap<
516 ::prost::alloc::string::String,
517 ::prost::alloc::string::String,
518 >,
519 #[prost(message, optional, tag = "7")]
520 pub info: ::core::option::Option<super::catalog::StreamSourceInfo>,
521 #[prost(string, tag = "8")]
522 pub source_name: ::prost::alloc::string::String,
523 #[prost(uint32, optional, tag = "9")]
525 pub rate_limit: ::core::option::Option<u32>,
526 #[prost(btree_map = "string, message", tag = "10")]
527 pub secret_refs: ::prost::alloc::collections::BTreeMap<
528 ::prost::alloc::string::String,
529 super::secret::SecretRef,
530 >,
531 #[prost(message, optional, tag = "11")]
532 pub refresh_mode: ::core::option::Option<super::plan_common::SourceRefreshMode>,
533 #[prost(uint32, optional, tag = "12", wrapper = "crate::id::TableId")]
534 pub associated_table_id: ::core::option::Option<crate::id::TableId>,
535}
536#[derive(prost_helpers::AnyPB)]
539#[derive(Clone, Copy, PartialEq, ::prost::Message)]
540pub struct BarrierRecvNode {}
541#[derive(prost_helpers::AnyPB)]
542#[derive(Clone, PartialEq, ::prost::Message)]
543pub struct SourceNode {
544 #[prost(message, optional, tag = "1")]
547 pub source_inner: ::core::option::Option<StreamSource>,
548}
549#[derive(prost_helpers::AnyPB)]
550#[derive(Clone, PartialEq, ::prost::Message)]
551pub struct StreamFsFetchNode {
552 #[prost(message, optional, tag = "1")]
553 pub node_inner: ::core::option::Option<StreamFsFetch>,
554}
555#[derive(prost_helpers::AnyPB)]
558#[derive(Clone, PartialEq, ::prost::Message)]
559pub struct SourceBackfillNode {
560 #[prost(uint32, tag = "1", wrapper = "crate::id::SourceId")]
561 pub upstream_source_id: crate::id::SourceId,
562 #[prost(uint32, optional, tag = "2")]
563 pub row_id_index: ::core::option::Option<u32>,
564 #[prost(message, repeated, tag = "3")]
565 pub columns: ::prost::alloc::vec::Vec<super::plan_common::ColumnCatalog>,
566 #[prost(message, optional, tag = "4")]
567 pub info: ::core::option::Option<super::catalog::StreamSourceInfo>,
568 #[prost(string, tag = "5")]
569 pub source_name: ::prost::alloc::string::String,
570 #[prost(btree_map = "string, string", tag = "6")]
571 pub with_properties: ::prost::alloc::collections::BTreeMap<
572 ::prost::alloc::string::String,
573 ::prost::alloc::string::String,
574 >,
575 #[prost(uint32, optional, tag = "7")]
577 pub rate_limit: ::core::option::Option<u32>,
578 #[prost(message, optional, tag = "8")]
580 pub state_table: ::core::option::Option<super::catalog::Table>,
581 #[prost(btree_map = "string, message", tag = "9")]
582 pub secret_refs: ::prost::alloc::collections::BTreeMap<
583 ::prost::alloc::string::String,
584 super::secret::SecretRef,
585 >,
586}
587#[derive(prost_helpers::AnyPB)]
588#[derive(Clone, PartialEq, ::prost::Message)]
589pub struct SinkDesc {
590 #[prost(uint32, tag = "1", wrapper = "crate::id::SinkId")]
591 pub id: crate::id::SinkId,
592 #[prost(string, tag = "2")]
593 pub name: ::prost::alloc::string::String,
594 #[prost(string, tag = "3")]
595 pub definition: ::prost::alloc::string::String,
596 #[prost(message, repeated, tag = "5")]
597 pub plan_pk: ::prost::alloc::vec::Vec<super::common::ColumnOrder>,
598 #[prost(uint32, repeated, tag = "6")]
599 pub downstream_pk: ::prost::alloc::vec::Vec<u32>,
600 #[prost(uint32, repeated, tag = "7")]
601 pub distribution_key: ::prost::alloc::vec::Vec<u32>,
602 #[prost(btree_map = "string, string", tag = "8")]
603 pub properties: ::prost::alloc::collections::BTreeMap<
604 ::prost::alloc::string::String,
605 ::prost::alloc::string::String,
606 >,
607 #[prost(enumeration = "super::catalog::SinkType", tag = "9")]
609 pub sink_type: i32,
610 #[prost(message, repeated, tag = "10")]
611 pub column_catalogs: ::prost::alloc::vec::Vec<super::plan_common::ColumnCatalog>,
612 #[prost(string, tag = "11")]
613 pub db_name: ::prost::alloc::string::String,
614 #[prost(string, tag = "12")]
617 pub sink_from_name: ::prost::alloc::string::String,
618 #[prost(message, optional, tag = "13")]
619 pub format_desc: ::core::option::Option<super::catalog::SinkFormatDesc>,
620 #[prost(uint32, optional, tag = "14")]
621 pub target_table: ::core::option::Option<u32>,
622 #[prost(uint64, optional, tag = "15")]
623 pub extra_partition_col_idx: ::core::option::Option<u64>,
624 #[prost(btree_map = "string, message", tag = "16")]
625 pub secret_refs: ::prost::alloc::collections::BTreeMap<
626 ::prost::alloc::string::String,
627 super::secret::SecretRef,
628 >,
629}
630#[derive(prost_helpers::AnyPB)]
631#[derive(Clone, PartialEq, ::prost::Message)]
632pub struct SinkNode {
633 #[prost(message, optional, tag = "1")]
634 pub sink_desc: ::core::option::Option<SinkDesc>,
635 #[prost(message, optional, tag = "2")]
637 pub table: ::core::option::Option<super::catalog::Table>,
638 #[prost(enumeration = "SinkLogStoreType", tag = "3")]
639 pub log_store_type: i32,
640 #[prost(uint32, optional, tag = "4")]
641 pub rate_limit: ::core::option::Option<u32>,
642}
643#[derive(prost_helpers::AnyPB)]
644#[derive(Clone, PartialEq, ::prost::Message)]
645pub struct ProjectNode {
646 #[prost(message, repeated, tag = "1")]
647 pub select_list: ::prost::alloc::vec::Vec<super::expr::ExprNode>,
648 #[prost(uint32, repeated, tag = "2")]
652 pub watermark_input_cols: ::prost::alloc::vec::Vec<u32>,
653 #[prost(uint32, repeated, tag = "3")]
654 pub watermark_output_cols: ::prost::alloc::vec::Vec<u32>,
655 #[prost(uint32, repeated, tag = "4")]
656 pub nondecreasing_exprs: ::prost::alloc::vec::Vec<u32>,
657 #[prost(bool, tag = "5")]
660 pub noop_update_hint: bool,
661}
662#[derive(prost_helpers::AnyPB)]
663#[derive(Clone, PartialEq, ::prost::Message)]
664pub struct FilterNode {
665 #[prost(message, optional, tag = "1")]
666 pub search_condition: ::core::option::Option<super::expr::ExprNode>,
667}
668#[derive(prost_helpers::AnyPB)]
669#[derive(Clone, PartialEq, ::prost::Message)]
670pub struct ChangeLogNode {
671 #[prost(bool, tag = "1")]
673 pub need_op: bool,
674 #[prost(uint32, repeated, tag = "2")]
675 pub distribution_keys: ::prost::alloc::vec::Vec<u32>,
676}
677#[derive(prost_helpers::AnyPB)]
678#[derive(Clone, PartialEq, ::prost::Message)]
679pub struct CdcFilterNode {
680 #[prost(message, optional, tag = "1")]
681 pub search_condition: ::core::option::Option<super::expr::ExprNode>,
682 #[prost(uint32, tag = "2", wrapper = "crate::id::SourceId")]
683 pub upstream_source_id: crate::id::SourceId,
684}
685#[derive(prost_helpers::AnyPB)]
693#[derive(Clone, PartialEq, ::prost::Message)]
694pub struct MaterializeNode {
695 #[prost(uint32, tag = "1", wrapper = "crate::id::TableId")]
696 pub table_id: crate::id::TableId,
697 #[prost(message, repeated, tag = "2")]
699 pub column_orders: ::prost::alloc::vec::Vec<super::common::ColumnOrder>,
700 #[prost(message, optional, tag = "3")]
707 pub table: ::core::option::Option<super::catalog::Table>,
708 #[prost(message, optional, tag = "5")]
717 pub staging_table: ::core::option::Option<super::catalog::Table>,
718 #[prost(message, optional, tag = "6")]
731 pub refresh_progress_table: ::core::option::Option<super::catalog::Table>,
732}
733#[derive(prost_helpers::AnyPB)]
734#[derive(Clone, PartialEq, ::prost::Message)]
735pub struct AggCallState {
736 #[prost(oneof = "agg_call_state::Inner", tags = "1, 3")]
737 pub inner: ::core::option::Option<agg_call_state::Inner>,
738}
739pub mod agg_call_state {
741 #[derive(prost_helpers::AnyPB)]
743 #[derive(Clone, Copy, PartialEq, ::prost::Message)]
744 pub struct ValueState {}
745 #[derive(prost_helpers::AnyPB)]
747 #[derive(Clone, PartialEq, ::prost::Message)]
748 pub struct MaterializedInputState {
749 #[prost(message, optional, tag = "1")]
750 pub table: ::core::option::Option<super::super::catalog::Table>,
751 #[prost(uint32, repeated, tag = "2")]
753 pub included_upstream_indices: ::prost::alloc::vec::Vec<u32>,
754 #[prost(uint32, repeated, tag = "3")]
755 pub table_value_indices: ::prost::alloc::vec::Vec<u32>,
756 #[prost(message, repeated, tag = "4")]
757 pub order_columns: ::prost::alloc::vec::Vec<super::super::common::ColumnOrder>,
758 }
759 #[derive(prost_helpers::AnyPB)]
760 #[derive(Clone, PartialEq, ::prost::Oneof)]
761 pub enum Inner {
762 #[prost(message, tag = "1")]
763 ValueState(ValueState),
764 #[prost(message, tag = "3")]
765 MaterializedInputState(MaterializedInputState),
766 }
767}
768#[derive(prost_helpers::AnyPB)]
769#[derive(Clone, PartialEq, ::prost::Message)]
770pub struct SimpleAggNode {
771 #[prost(message, repeated, tag = "1")]
772 pub agg_calls: ::prost::alloc::vec::Vec<super::expr::AggCall>,
773 #[prost(message, repeated, tag = "3")]
774 pub agg_call_states: ::prost::alloc::vec::Vec<AggCallState>,
775 #[prost(message, optional, tag = "4")]
776 pub intermediate_state_table: ::core::option::Option<super::catalog::Table>,
777 #[prost(bool, tag = "5")]
780 pub is_append_only: bool,
781 #[prost(map = "uint32, message", tag = "6")]
782 pub distinct_dedup_tables: ::std::collections::HashMap<u32, super::catalog::Table>,
783 #[prost(uint32, tag = "7")]
784 pub row_count_index: u32,
785 #[prost(enumeration = "AggNodeVersion", tag = "8")]
786 pub version: i32,
787 #[prost(bool, tag = "9")]
790 pub must_output_per_barrier: bool,
791}
792#[derive(prost_helpers::AnyPB)]
793#[derive(Clone, PartialEq, ::prost::Message)]
794pub struct HashAggNode {
795 #[prost(uint32, repeated, tag = "1")]
796 pub group_key: ::prost::alloc::vec::Vec<u32>,
797 #[prost(message, repeated, tag = "2")]
798 pub agg_calls: ::prost::alloc::vec::Vec<super::expr::AggCall>,
799 #[prost(message, repeated, tag = "3")]
800 pub agg_call_states: ::prost::alloc::vec::Vec<AggCallState>,
801 #[prost(message, optional, tag = "4")]
802 pub intermediate_state_table: ::core::option::Option<super::catalog::Table>,
803 #[prost(bool, tag = "5")]
806 pub is_append_only: bool,
807 #[prost(map = "uint32, message", tag = "6")]
808 pub distinct_dedup_tables: ::std::collections::HashMap<u32, super::catalog::Table>,
809 #[prost(uint32, tag = "7")]
810 pub row_count_index: u32,
811 #[prost(bool, tag = "8")]
812 pub emit_on_window_close: bool,
813 #[prost(enumeration = "AggNodeVersion", tag = "9")]
814 pub version: i32,
815}
816#[derive(prost_helpers::AnyPB)]
817#[derive(Clone, PartialEq, ::prost::Message)]
818pub struct TopNNode {
819 #[prost(uint64, tag = "1")]
821 pub limit: u64,
822 #[prost(uint64, tag = "2")]
823 pub offset: u64,
824 #[prost(message, optional, tag = "3")]
825 pub table: ::core::option::Option<super::catalog::Table>,
826 #[prost(message, repeated, tag = "4")]
827 pub order_by: ::prost::alloc::vec::Vec<super::common::ColumnOrder>,
828 #[prost(bool, tag = "5")]
829 pub with_ties: bool,
830}
831#[derive(prost_helpers::AnyPB)]
832#[derive(Clone, PartialEq, ::prost::Message)]
833pub struct GroupTopNNode {
834 #[prost(uint64, tag = "1")]
836 pub limit: u64,
837 #[prost(uint64, tag = "2")]
838 pub offset: u64,
839 #[prost(uint32, repeated, tag = "3")]
840 pub group_key: ::prost::alloc::vec::Vec<u32>,
841 #[prost(message, optional, tag = "4")]
842 pub table: ::core::option::Option<super::catalog::Table>,
843 #[prost(message, repeated, tag = "5")]
844 pub order_by: ::prost::alloc::vec::Vec<super::common::ColumnOrder>,
845 #[prost(bool, tag = "6")]
846 pub with_ties: bool,
847}
848#[derive(prost_helpers::AnyPB)]
849#[derive(Clone, PartialEq, ::prost::Message)]
850pub struct DeltaExpression {
851 #[prost(enumeration = "super::expr::expr_node::Type", tag = "1")]
852 pub delta_type: i32,
853 #[prost(message, optional, tag = "2")]
854 pub delta: ::core::option::Option<super::expr::ExprNode>,
855}
856#[derive(prost_helpers::AnyPB)]
857#[derive(Clone, PartialEq, ::prost::Message)]
858pub struct InequalityPair {
859 #[prost(uint32, tag = "1")]
861 pub key_required_larger: u32,
862 #[prost(uint32, tag = "2")]
864 pub key_required_smaller: u32,
865 #[prost(bool, tag = "3")]
867 pub clean_state: bool,
868 #[prost(message, optional, tag = "4")]
870 pub delta_expression: ::core::option::Option<DeltaExpression>,
871}
872#[derive(prost_helpers::AnyPB)]
873#[derive(Clone, PartialEq, ::prost::Message)]
874pub struct HashJoinNode {
875 #[prost(enumeration = "super::plan_common::JoinType", tag = "1")]
876 pub join_type: i32,
877 #[prost(int32, repeated, tag = "2")]
878 pub left_key: ::prost::alloc::vec::Vec<i32>,
879 #[prost(int32, repeated, tag = "3")]
880 pub right_key: ::prost::alloc::vec::Vec<i32>,
881 #[prost(message, optional, tag = "4")]
882 pub condition: ::core::option::Option<super::expr::ExprNode>,
883 #[prost(message, repeated, tag = "5")]
884 pub inequality_pairs: ::prost::alloc::vec::Vec<InequalityPair>,
885 #[prost(message, optional, tag = "6")]
887 pub left_table: ::core::option::Option<super::catalog::Table>,
888 #[prost(message, optional, tag = "7")]
890 pub right_table: ::core::option::Option<super::catalog::Table>,
891 #[prost(message, optional, tag = "8")]
893 pub left_degree_table: ::core::option::Option<super::catalog::Table>,
894 #[prost(message, optional, tag = "9")]
896 pub right_degree_table: ::core::option::Option<super::catalog::Table>,
897 #[prost(uint32, repeated, tag = "10")]
899 pub output_indices: ::prost::alloc::vec::Vec<u32>,
900 #[prost(uint32, repeated, tag = "11")]
905 pub left_deduped_input_pk_indices: ::prost::alloc::vec::Vec<u32>,
906 #[prost(uint32, repeated, tag = "12")]
911 pub right_deduped_input_pk_indices: ::prost::alloc::vec::Vec<u32>,
912 #[prost(bool, repeated, tag = "13")]
913 pub null_safe: ::prost::alloc::vec::Vec<bool>,
914 #[prost(bool, tag = "14")]
917 pub is_append_only: bool,
918 #[deprecated]
921 #[prost(enumeration = "JoinEncodingType", tag = "15")]
922 pub join_encoding_type: i32,
923}
924#[derive(prost_helpers::AnyPB)]
925#[derive(Clone, PartialEq, ::prost::Message)]
926pub struct AsOfJoinNode {
927 #[prost(enumeration = "super::plan_common::AsOfJoinType", tag = "1")]
928 pub join_type: i32,
929 #[prost(int32, repeated, tag = "2")]
930 pub left_key: ::prost::alloc::vec::Vec<i32>,
931 #[prost(int32, repeated, tag = "3")]
932 pub right_key: ::prost::alloc::vec::Vec<i32>,
933 #[prost(message, optional, tag = "4")]
935 pub left_table: ::core::option::Option<super::catalog::Table>,
936 #[prost(message, optional, tag = "5")]
938 pub right_table: ::core::option::Option<super::catalog::Table>,
939 #[prost(uint32, repeated, tag = "6")]
941 pub output_indices: ::prost::alloc::vec::Vec<u32>,
942 #[prost(uint32, repeated, tag = "7")]
946 pub left_deduped_input_pk_indices: ::prost::alloc::vec::Vec<u32>,
947 #[prost(uint32, repeated, tag = "8")]
951 pub right_deduped_input_pk_indices: ::prost::alloc::vec::Vec<u32>,
952 #[prost(bool, repeated, tag = "9")]
953 pub null_safe: ::prost::alloc::vec::Vec<bool>,
954 #[prost(message, optional, tag = "10")]
955 pub asof_desc: ::core::option::Option<super::plan_common::AsOfJoinDesc>,
956 #[deprecated]
959 #[prost(enumeration = "JoinEncodingType", tag = "11")]
960 pub join_encoding_type: i32,
961}
962#[derive(prost_helpers::AnyPB)]
963#[derive(Clone, PartialEq, ::prost::Message)]
964pub struct TemporalJoinNode {
965 #[prost(enumeration = "super::plan_common::JoinType", tag = "1")]
966 pub join_type: i32,
967 #[prost(int32, repeated, tag = "2")]
968 pub left_key: ::prost::alloc::vec::Vec<i32>,
969 #[prost(int32, repeated, tag = "3")]
970 pub right_key: ::prost::alloc::vec::Vec<i32>,
971 #[prost(bool, repeated, tag = "4")]
972 pub null_safe: ::prost::alloc::vec::Vec<bool>,
973 #[prost(message, optional, tag = "5")]
974 pub condition: ::core::option::Option<super::expr::ExprNode>,
975 #[prost(uint32, repeated, tag = "6")]
977 pub output_indices: ::prost::alloc::vec::Vec<u32>,
978 #[prost(message, optional, tag = "7")]
980 pub table_desc: ::core::option::Option<super::plan_common::StorageTableDesc>,
981 #[prost(uint32, repeated, tag = "8")]
983 pub table_output_indices: ::prost::alloc::vec::Vec<u32>,
984 #[prost(message, optional, tag = "9")]
986 pub memo_table: ::core::option::Option<super::catalog::Table>,
987 #[prost(bool, tag = "10")]
989 pub is_nested_loop: bool,
990}
991#[derive(prost_helpers::AnyPB)]
992#[derive(Clone, PartialEq, ::prost::Message)]
993pub struct DynamicFilterNode {
994 #[prost(uint32, tag = "1")]
995 pub left_key: u32,
996 #[prost(message, optional, tag = "2")]
998 pub condition: ::core::option::Option<super::expr::ExprNode>,
999 #[prost(message, optional, tag = "3")]
1001 pub left_table: ::core::option::Option<super::catalog::Table>,
1002 #[prost(message, optional, tag = "4")]
1004 pub right_table: ::core::option::Option<super::catalog::Table>,
1005 #[deprecated]
1012 #[prost(bool, tag = "5")]
1013 pub condition_always_relax: bool,
1014}
1015#[derive(prost_helpers::AnyPB)]
1018#[derive(Clone, PartialEq, ::prost::Message)]
1019pub struct DeltaIndexJoinNode {
1020 #[prost(enumeration = "super::plan_common::JoinType", tag = "1")]
1021 pub join_type: i32,
1022 #[prost(int32, repeated, tag = "2")]
1023 pub left_key: ::prost::alloc::vec::Vec<i32>,
1024 #[prost(int32, repeated, tag = "3")]
1025 pub right_key: ::prost::alloc::vec::Vec<i32>,
1026 #[prost(message, optional, tag = "4")]
1027 pub condition: ::core::option::Option<super::expr::ExprNode>,
1028 #[prost(uint32, tag = "7", wrapper = "crate::id::TableId")]
1030 pub left_table_id: crate::id::TableId,
1031 #[prost(uint32, tag = "8", wrapper = "crate::id::TableId")]
1033 pub right_table_id: crate::id::TableId,
1034 #[prost(message, optional, tag = "9")]
1036 pub left_info: ::core::option::Option<ArrangementInfo>,
1037 #[prost(message, optional, tag = "10")]
1039 pub right_info: ::core::option::Option<ArrangementInfo>,
1040 #[prost(uint32, repeated, tag = "11")]
1042 pub output_indices: ::prost::alloc::vec::Vec<u32>,
1043}
1044#[derive(prost_helpers::AnyPB)]
1045#[derive(Clone, PartialEq, ::prost::Message)]
1046pub struct HopWindowNode {
1047 #[prost(uint32, tag = "1")]
1048 pub time_col: u32,
1049 #[prost(message, optional, tag = "2")]
1050 pub window_slide: ::core::option::Option<super::data::Interval>,
1051 #[prost(message, optional, tag = "3")]
1052 pub window_size: ::core::option::Option<super::data::Interval>,
1053 #[prost(uint32, repeated, tag = "4")]
1054 pub output_indices: ::prost::alloc::vec::Vec<u32>,
1055 #[prost(message, repeated, tag = "5")]
1056 pub window_start_exprs: ::prost::alloc::vec::Vec<super::expr::ExprNode>,
1057 #[prost(message, repeated, tag = "6")]
1058 pub window_end_exprs: ::prost::alloc::vec::Vec<super::expr::ExprNode>,
1059}
1060#[derive(prost_helpers::AnyPB)]
1061#[derive(Clone, PartialEq, ::prost::Message)]
1062pub struct MergeNode {
1063 #[deprecated]
1070 #[prost(uint32, repeated, packed = "false", tag = "1")]
1071 pub upstream_actor_id: ::prost::alloc::vec::Vec<u32>,
1072 #[prost(uint32, tag = "2", wrapper = "crate::id::FragmentId")]
1073 pub upstream_fragment_id: crate::id::FragmentId,
1074 #[prost(enumeration = "DispatcherType", tag = "3")]
1077 pub upstream_dispatcher_type: i32,
1078 #[deprecated]
1080 #[prost(message, repeated, tag = "4")]
1081 pub fields: ::prost::alloc::vec::Vec<super::plan_common::Field>,
1082}
1083#[derive(prost_helpers::AnyPB)]
1086#[derive(Clone, PartialEq, ::prost::Message)]
1087pub struct ExchangeNode {
1088 #[prost(message, optional, tag = "1")]
1089 pub strategy: ::core::option::Option<DispatchStrategy>,
1090}
1091#[derive(prost_helpers::AnyPB)]
1096#[derive(Clone, PartialEq, ::prost::Message)]
1097pub struct StreamScanNode {
1098 #[prost(uint32, tag = "1", wrapper = "crate::id::TableId")]
1099 pub table_id: crate::id::TableId,
1100 #[prost(int32, repeated, tag = "2")]
1104 pub upstream_column_ids: ::prost::alloc::vec::Vec<i32>,
1105 #[prost(uint32, repeated, tag = "3")]
1109 pub output_indices: ::prost::alloc::vec::Vec<u32>,
1110 #[prost(enumeration = "StreamScanType", tag = "4")]
1115 pub stream_scan_type: i32,
1116 #[prost(message, optional, tag = "5")]
1118 pub state_table: ::core::option::Option<super::catalog::Table>,
1119 #[prost(message, optional, tag = "7")]
1122 pub table_desc: ::core::option::Option<super::plan_common::StorageTableDesc>,
1123 #[prost(uint32, optional, tag = "8")]
1125 pub rate_limit: ::core::option::Option<u32>,
1126 #[deprecated]
1128 #[prost(uint32, tag = "9")]
1129 pub snapshot_read_barrier_interval: u32,
1130 #[prost(message, optional, tag = "10")]
1133 pub arrangement_table: ::core::option::Option<super::catalog::Table>,
1134 #[prost(uint64, optional, tag = "11")]
1135 pub snapshot_backfill_epoch: ::core::option::Option<u64>,
1136}
1137#[derive(prost_helpers::AnyPB)]
1139#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1140pub struct StreamCdcScanOptions {
1141 #[prost(bool, tag = "1")]
1143 pub disable_backfill: bool,
1144 #[prost(uint32, tag = "2")]
1145 pub snapshot_barrier_interval: u32,
1146 #[prost(uint32, tag = "3")]
1147 pub snapshot_batch_size: u32,
1148 #[prost(uint32, tag = "4")]
1149 pub backfill_parallelism: u32,
1150 #[prost(uint64, tag = "5")]
1151 pub backfill_num_rows_per_split: u64,
1152 #[prost(bool, tag = "6")]
1153 pub backfill_as_even_splits: bool,
1154 #[prost(uint32, tag = "7")]
1155 pub backfill_split_pk_column_index: u32,
1156}
1157#[derive(prost_helpers::AnyPB)]
1158#[derive(Clone, PartialEq, ::prost::Message)]
1159pub struct StreamCdcScanNode {
1160 #[prost(uint32, tag = "1", wrapper = "crate::id::TableId")]
1161 pub table_id: crate::id::TableId,
1162 #[prost(int32, repeated, tag = "2")]
1165 pub upstream_column_ids: ::prost::alloc::vec::Vec<i32>,
1166 #[prost(uint32, repeated, tag = "3")]
1168 pub output_indices: ::prost::alloc::vec::Vec<u32>,
1169 #[prost(message, optional, tag = "4")]
1171 pub state_table: ::core::option::Option<super::catalog::Table>,
1172 #[prost(message, optional, tag = "5")]
1174 pub cdc_table_desc: ::core::option::Option<super::plan_common::ExternalTableDesc>,
1175 #[prost(uint32, optional, tag = "6")]
1177 pub rate_limit: ::core::option::Option<u32>,
1178 #[prost(bool, tag = "7")]
1181 pub disable_backfill: bool,
1182 #[prost(message, optional, tag = "8")]
1183 pub options: ::core::option::Option<StreamCdcScanOptions>,
1184}
1185#[derive(prost_helpers::AnyPB)]
1189#[derive(Clone, PartialEq, ::prost::Message)]
1190pub struct BatchPlanNode {
1191 #[prost(message, optional, tag = "1")]
1192 pub table_desc: ::core::option::Option<super::plan_common::StorageTableDesc>,
1193 #[prost(int32, repeated, tag = "2")]
1194 pub column_ids: ::prost::alloc::vec::Vec<i32>,
1195}
1196#[derive(prost_helpers::AnyPB)]
1197#[derive(Clone, PartialEq, ::prost::Message)]
1198pub struct ArrangementInfo {
1199 #[prost(message, repeated, tag = "1")]
1202 pub arrange_key_orders: ::prost::alloc::vec::Vec<super::common::ColumnOrder>,
1203 #[prost(message, repeated, tag = "2")]
1205 pub column_descs: ::prost::alloc::vec::Vec<super::plan_common::ColumnDesc>,
1206 #[prost(message, optional, tag = "4")]
1208 pub table_desc: ::core::option::Option<super::plan_common::StorageTableDesc>,
1209 #[prost(uint32, repeated, tag = "5")]
1211 pub output_col_idx: ::prost::alloc::vec::Vec<u32>,
1212}
1213#[derive(prost_helpers::AnyPB)]
1216#[derive(Clone, PartialEq, ::prost::Message)]
1217pub struct ArrangeNode {
1218 #[prost(message, optional, tag = "1")]
1220 pub table_info: ::core::option::Option<ArrangementInfo>,
1221 #[prost(uint32, repeated, tag = "2")]
1223 pub distribution_key: ::prost::alloc::vec::Vec<u32>,
1224 #[prost(message, optional, tag = "3")]
1226 pub table: ::core::option::Option<super::catalog::Table>,
1227}
1228#[derive(prost_helpers::AnyPB)]
1230#[derive(Clone, PartialEq, ::prost::Message)]
1231pub struct LookupNode {
1232 #[prost(int32, repeated, tag = "1")]
1234 pub arrange_key: ::prost::alloc::vec::Vec<i32>,
1235 #[prost(int32, repeated, tag = "2")]
1237 pub stream_key: ::prost::alloc::vec::Vec<i32>,
1238 #[prost(bool, tag = "3")]
1240 pub use_current_epoch: bool,
1241 #[prost(int32, repeated, tag = "4")]
1245 pub column_mapping: ::prost::alloc::vec::Vec<i32>,
1246 #[prost(message, optional, tag = "7")]
1248 pub arrangement_table_info: ::core::option::Option<ArrangementInfo>,
1249 #[prost(oneof = "lookup_node::ArrangementTableId", tags = "5, 6")]
1250 pub arrangement_table_id: ::core::option::Option<lookup_node::ArrangementTableId>,
1251}
1252pub mod lookup_node {
1254 #[derive(prost_helpers::AnyPB)]
1255 #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
1256 pub enum ArrangementTableId {
1257 #[prost(uint32, tag = "5")]
1259 TableId(u32),
1260 #[prost(uint32, tag = "6")]
1262 IndexId(u32),
1263 }
1264}
1265#[derive(prost_helpers::AnyPB)]
1267#[derive(Clone, PartialEq, ::prost::Message)]
1268pub struct WatermarkFilterNode {
1269 #[prost(message, repeated, tag = "1")]
1271 pub watermark_descs: ::prost::alloc::vec::Vec<super::catalog::WatermarkDesc>,
1272 #[prost(message, repeated, tag = "2")]
1274 pub tables: ::prost::alloc::vec::Vec<super::catalog::Table>,
1275}
1276#[derive(prost_helpers::AnyPB)]
1278#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1279pub struct UnionNode {}
1280#[derive(prost_helpers::AnyPB)]
1282#[derive(Clone, PartialEq, ::prost::Message)]
1283pub struct LookupUnionNode {
1284 #[prost(uint32, repeated, tag = "1")]
1285 pub order: ::prost::alloc::vec::Vec<u32>,
1286}
1287#[derive(prost_helpers::AnyPB)]
1288#[derive(Clone, PartialEq, ::prost::Message)]
1289pub struct ExpandNode {
1290 #[prost(message, repeated, tag = "1")]
1291 pub column_subsets: ::prost::alloc::vec::Vec<expand_node::Subset>,
1292}
1293pub mod expand_node {
1295 #[derive(prost_helpers::AnyPB)]
1296 #[derive(Clone, PartialEq, ::prost::Message)]
1297 pub struct Subset {
1298 #[prost(uint32, repeated, tag = "1")]
1299 pub column_indices: ::prost::alloc::vec::Vec<u32>,
1300 }
1301}
1302#[derive(prost_helpers::AnyPB)]
1303#[derive(Clone, PartialEq, ::prost::Message)]
1304pub struct ProjectSetNode {
1305 #[prost(message, repeated, tag = "1")]
1306 pub select_list: ::prost::alloc::vec::Vec<super::expr::ProjectSetSelectItem>,
1307 #[prost(uint32, repeated, tag = "2")]
1311 pub watermark_input_cols: ::prost::alloc::vec::Vec<u32>,
1312 #[prost(uint32, repeated, tag = "3")]
1313 pub watermark_expr_indices: ::prost::alloc::vec::Vec<u32>,
1314 #[prost(uint32, repeated, tag = "4")]
1315 pub nondecreasing_exprs: ::prost::alloc::vec::Vec<u32>,
1316}
1317#[derive(prost_helpers::AnyPB)]
1319#[derive(Clone, PartialEq, ::prost::Message)]
1320pub struct SortNode {
1321 #[prost(message, optional, tag = "1")]
1323 pub state_table: ::core::option::Option<super::catalog::Table>,
1324 #[prost(uint32, tag = "2")]
1326 pub sort_column_index: u32,
1327}
1328#[derive(prost_helpers::AnyPB)]
1330#[derive(Clone, PartialEq, ::prost::Message)]
1331pub struct DmlNode {
1332 #[prost(uint32, tag = "1", wrapper = "crate::id::TableId")]
1334 pub table_id: crate::id::TableId,
1335 #[prost(uint64, tag = "3")]
1337 pub table_version_id: u64,
1338 #[prost(message, repeated, tag = "2")]
1340 pub column_descs: ::prost::alloc::vec::Vec<super::plan_common::ColumnDesc>,
1341 #[prost(uint32, optional, tag = "4")]
1342 pub rate_limit: ::core::option::Option<u32>,
1343}
1344#[derive(prost_helpers::AnyPB)]
1345#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1346pub struct RowIdGenNode {
1347 #[prost(uint64, tag = "1")]
1348 pub row_id_index: u64,
1349}
1350#[derive(prost_helpers::AnyPB)]
1351#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1352pub struct NowModeUpdateCurrent {}
1353#[derive(prost_helpers::AnyPB)]
1354#[derive(Clone, PartialEq, ::prost::Message)]
1355pub struct NowModeGenerateSeries {
1356 #[prost(message, optional, tag = "1")]
1357 pub start_timestamp: ::core::option::Option<super::data::Datum>,
1358 #[prost(message, optional, tag = "2")]
1359 pub interval: ::core::option::Option<super::data::Datum>,
1360}
1361#[derive(prost_helpers::AnyPB)]
1362#[derive(Clone, PartialEq, ::prost::Message)]
1363pub struct NowNode {
1364 #[prost(message, optional, tag = "1")]
1366 pub state_table: ::core::option::Option<super::catalog::Table>,
1367 #[prost(oneof = "now_node::Mode", tags = "101, 102")]
1368 pub mode: ::core::option::Option<now_node::Mode>,
1369}
1370pub mod now_node {
1372 #[derive(prost_helpers::AnyPB)]
1373 #[derive(Clone, PartialEq, ::prost::Oneof)]
1374 pub enum Mode {
1375 #[prost(message, tag = "101")]
1376 UpdateCurrent(super::NowModeUpdateCurrent),
1377 #[prost(message, tag = "102")]
1378 GenerateSeries(super::NowModeGenerateSeries),
1379 }
1380}
1381#[derive(prost_helpers::AnyPB)]
1382#[derive(Clone, PartialEq, ::prost::Message)]
1383pub struct ValuesNode {
1384 #[prost(message, repeated, tag = "1")]
1385 pub tuples: ::prost::alloc::vec::Vec<values_node::ExprTuple>,
1386 #[prost(message, repeated, tag = "2")]
1387 pub fields: ::prost::alloc::vec::Vec<super::plan_common::Field>,
1388}
1389pub mod values_node {
1391 #[derive(prost_helpers::AnyPB)]
1392 #[derive(Clone, PartialEq, ::prost::Message)]
1393 pub struct ExprTuple {
1394 #[prost(message, repeated, tag = "1")]
1395 pub cells: ::prost::alloc::vec::Vec<super::super::expr::ExprNode>,
1396 }
1397}
1398#[derive(prost_helpers::AnyPB)]
1399#[derive(Clone, PartialEq, ::prost::Message)]
1400pub struct DedupNode {
1401 #[prost(message, optional, tag = "1")]
1402 pub state_table: ::core::option::Option<super::catalog::Table>,
1403 #[prost(uint32, repeated, tag = "2")]
1404 pub dedup_column_indices: ::prost::alloc::vec::Vec<u32>,
1405}
1406#[derive(prost_helpers::AnyPB)]
1407#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1408pub struct NoOpNode {}
1409#[derive(prost_helpers::AnyPB)]
1410#[derive(Clone, PartialEq, ::prost::Message)]
1411pub struct EowcOverWindowNode {
1412 #[prost(message, repeated, tag = "1")]
1413 pub calls: ::prost::alloc::vec::Vec<super::expr::WindowFunction>,
1414 #[prost(uint32, repeated, tag = "2")]
1415 pub partition_by: ::prost::alloc::vec::Vec<u32>,
1416 #[prost(message, repeated, tag = "3")]
1418 pub order_by: ::prost::alloc::vec::Vec<super::common::ColumnOrder>,
1419 #[prost(message, optional, tag = "4")]
1420 pub state_table: ::core::option::Option<super::catalog::Table>,
1421}
1422#[derive(prost_helpers::AnyPB)]
1423#[derive(Clone, PartialEq, ::prost::Message)]
1424pub struct OverWindowNode {
1425 #[prost(message, repeated, tag = "1")]
1426 pub calls: ::prost::alloc::vec::Vec<super::expr::WindowFunction>,
1427 #[prost(uint32, repeated, tag = "2")]
1428 pub partition_by: ::prost::alloc::vec::Vec<u32>,
1429 #[prost(message, repeated, tag = "3")]
1430 pub order_by: ::prost::alloc::vec::Vec<super::common::ColumnOrder>,
1431 #[prost(message, optional, tag = "4")]
1432 pub state_table: ::core::option::Option<super::catalog::Table>,
1433 #[deprecated]
1435 #[prost(enumeration = "OverWindowCachePolicy", tag = "5")]
1436 pub cache_policy: i32,
1437}
1438#[derive(prost_helpers::AnyPB)]
1439#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1440pub struct LocalApproxPercentileNode {
1441 #[prost(double, tag = "1")]
1442 pub base: f64,
1443 #[prost(uint32, tag = "2")]
1444 pub percentile_index: u32,
1445}
1446#[derive(prost_helpers::AnyPB)]
1447#[derive(Clone, PartialEq, ::prost::Message)]
1448pub struct GlobalApproxPercentileNode {
1449 #[prost(double, tag = "1")]
1450 pub base: f64,
1451 #[prost(double, tag = "2")]
1452 pub quantile: f64,
1453 #[prost(message, optional, tag = "3")]
1454 pub bucket_state_table: ::core::option::Option<super::catalog::Table>,
1455 #[prost(message, optional, tag = "4")]
1456 pub count_state_table: ::core::option::Option<super::catalog::Table>,
1457}
1458#[derive(prost_helpers::AnyPB)]
1459#[derive(Clone, PartialEq, ::prost::Message)]
1460pub struct RowMergeNode {
1461 #[prost(message, optional, tag = "1")]
1462 pub lhs_mapping: ::core::option::Option<super::catalog::ColIndexMapping>,
1463 #[prost(message, optional, tag = "2")]
1464 pub rhs_mapping: ::core::option::Option<super::catalog::ColIndexMapping>,
1465}
1466#[derive(prost_helpers::AnyPB)]
1467#[derive(Clone, PartialEq, ::prost::Message)]
1468pub struct SyncLogStoreNode {
1469 #[prost(message, optional, tag = "1")]
1470 pub log_store_table: ::core::option::Option<super::catalog::Table>,
1471 #[deprecated]
1473 #[prost(uint32, optional, tag = "2")]
1474 pub pause_duration_ms: ::core::option::Option<u32>,
1475 #[deprecated]
1477 #[prost(uint32, optional, tag = "3")]
1478 pub buffer_size: ::core::option::Option<u32>,
1479 #[prost(bool, tag = "4")]
1480 pub aligned: bool,
1481}
1482#[derive(prost_helpers::AnyPB)]
1483#[derive(Clone, PartialEq, ::prost::Message)]
1484pub struct MaterializedExprsNode {
1485 #[prost(message, repeated, tag = "1")]
1486 pub exprs: ::prost::alloc::vec::Vec<super::expr::ExprNode>,
1487 #[prost(message, optional, tag = "2")]
1488 pub state_table: ::core::option::Option<super::catalog::Table>,
1489 #[prost(uint32, optional, tag = "3")]
1490 pub state_clean_col_idx: ::core::option::Option<u32>,
1491}
1492#[derive(prost_helpers::AnyPB)]
1493#[derive(Clone, PartialEq, ::prost::Message)]
1494pub struct VectorIndexWriteNode {
1495 #[prost(message, optional, tag = "1")]
1496 pub table: ::core::option::Option<super::catalog::Table>,
1497}
1498#[derive(prost_helpers::AnyPB)]
1499#[derive(Clone, PartialEq, ::prost::Message)]
1500pub struct VectorIndexLookupJoinNode {
1501 #[prost(message, optional, tag = "1")]
1502 pub reader_desc: ::core::option::Option<super::plan_common::VectorIndexReaderDesc>,
1503 #[prost(uint32, tag = "2")]
1504 pub vector_column_idx: u32,
1505}
1506#[derive(prost_helpers::AnyPB)]
1507#[derive(Clone, PartialEq, ::prost::Message)]
1508pub struct UpstreamSinkUnionNode {
1509 #[prost(message, repeated, tag = "1")]
1512 pub init_upstreams: ::prost::alloc::vec::Vec<UpstreamSinkInfo>,
1513}
1514#[derive(prost_helpers::AnyPB)]
1515#[derive(Clone, PartialEq, ::prost::Message)]
1516pub struct LocalityProviderNode {
1517 #[prost(uint32, repeated, tag = "1")]
1519 pub locality_columns: ::prost::alloc::vec::Vec<u32>,
1520 #[prost(message, optional, tag = "2")]
1522 pub state_table: ::core::option::Option<super::catalog::Table>,
1523 #[prost(message, optional, tag = "3")]
1525 pub progress_table: ::core::option::Option<super::catalog::Table>,
1526}
1527#[derive(prost_helpers::AnyPB)]
1528#[derive(Clone, PartialEq, ::prost::Message)]
1529pub struct EowcGapFillNode {
1530 #[prost(uint32, tag = "1")]
1531 pub time_column_index: u32,
1532 #[prost(message, optional, tag = "2")]
1533 pub interval: ::core::option::Option<super::expr::ExprNode>,
1534 #[prost(uint32, repeated, tag = "3")]
1535 pub fill_columns: ::prost::alloc::vec::Vec<u32>,
1536 #[prost(string, repeated, tag = "4")]
1537 pub fill_strategies: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1538 #[prost(message, optional, tag = "5")]
1539 pub buffer_table: ::core::option::Option<super::catalog::Table>,
1540 #[prost(message, optional, tag = "6")]
1541 pub prev_row_table: ::core::option::Option<super::catalog::Table>,
1542}
1543#[derive(prost_helpers::AnyPB)]
1544#[derive(Clone, PartialEq, ::prost::Message)]
1545pub struct GapFillNode {
1546 #[prost(uint32, tag = "1")]
1547 pub time_column_index: u32,
1548 #[prost(message, optional, tag = "2")]
1549 pub interval: ::core::option::Option<super::expr::ExprNode>,
1550 #[prost(uint32, repeated, tag = "3")]
1551 pub fill_columns: ::prost::alloc::vec::Vec<u32>,
1552 #[prost(string, repeated, tag = "4")]
1553 pub fill_strategies: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1554 #[prost(message, optional, tag = "5")]
1555 pub state_table: ::core::option::Option<super::catalog::Table>,
1556}
1557#[derive(prost_helpers::AnyPB)]
1558#[derive(Clone, PartialEq, ::prost::Message)]
1559pub struct StreamNode {
1560 #[prost(uint64, tag = "1")]
1563 pub operator_id: u64,
1564 #[prost(message, repeated, tag = "3")]
1566 pub input: ::prost::alloc::vec::Vec<StreamNode>,
1567 #[prost(uint32, repeated, tag = "2")]
1568 pub stream_key: ::prost::alloc::vec::Vec<u32>,
1569 #[prost(enumeration = "stream_node::StreamKind", tag = "24")]
1570 pub stream_kind: i32,
1571 #[prost(string, tag = "18")]
1572 pub identity: ::prost::alloc::string::String,
1573 #[prost(message, repeated, tag = "19")]
1575 pub fields: ::prost::alloc::vec::Vec<super::plan_common::Field>,
1576 #[prost(
1577 oneof = "stream_node::NodeBody",
1578 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"
1579 )]
1580 pub node_body: ::core::option::Option<stream_node::NodeBody>,
1581}
1582pub mod stream_node {
1584 #[derive(prost_helpers::AnyPB)]
1587 #[derive(
1588 Clone,
1589 Copy,
1590 Debug,
1591 PartialEq,
1592 Eq,
1593 Hash,
1594 PartialOrd,
1595 Ord,
1596 ::prost::Enumeration
1597 )]
1598 #[repr(i32)]
1599 pub enum StreamKind {
1600 Retract = 0,
1602 AppendOnly = 1,
1603 Upsert = 2,
1604 }
1605 impl StreamKind {
1606 pub fn as_str_name(&self) -> &'static str {
1611 match self {
1612 Self::Retract => "STREAM_KIND_RETRACT",
1613 Self::AppendOnly => "STREAM_KIND_APPEND_ONLY",
1614 Self::Upsert => "STREAM_KIND_UPSERT",
1615 }
1616 }
1617 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1619 match value {
1620 "STREAM_KIND_RETRACT" => Some(Self::Retract),
1621 "STREAM_KIND_APPEND_ONLY" => Some(Self::AppendOnly),
1622 "STREAM_KIND_UPSERT" => Some(Self::Upsert),
1623 _ => None,
1624 }
1625 }
1626 }
1627 #[derive(prost_helpers::AnyPB)]
1628 #[derive(::enum_as_inner::EnumAsInner, ::strum::Display, ::strum::EnumDiscriminants)]
1629 #[strum_discriminants(derive(::strum::Display, Hash))]
1630 #[derive(Clone, PartialEq, ::prost::Oneof)]
1631 pub enum NodeBody {
1632 #[prost(message, tag = "100")]
1633 Source(::prost::alloc::boxed::Box<super::SourceNode>),
1634 #[prost(message, tag = "101")]
1635 Project(::prost::alloc::boxed::Box<super::ProjectNode>),
1636 #[prost(message, tag = "102")]
1637 Filter(::prost::alloc::boxed::Box<super::FilterNode>),
1638 #[prost(message, tag = "103")]
1639 Materialize(::prost::alloc::boxed::Box<super::MaterializeNode>),
1640 #[prost(message, tag = "104")]
1641 StatelessSimpleAgg(::prost::alloc::boxed::Box<super::SimpleAggNode>),
1642 #[prost(message, tag = "105")]
1643 SimpleAgg(::prost::alloc::boxed::Box<super::SimpleAggNode>),
1644 #[prost(message, tag = "106")]
1645 HashAgg(::prost::alloc::boxed::Box<super::HashAggNode>),
1646 #[prost(message, tag = "107")]
1647 AppendOnlyTopN(::prost::alloc::boxed::Box<super::TopNNode>),
1648 #[prost(message, tag = "108")]
1649 HashJoin(::prost::alloc::boxed::Box<super::HashJoinNode>),
1650 #[prost(message, tag = "109")]
1651 TopN(::prost::alloc::boxed::Box<super::TopNNode>),
1652 #[prost(message, tag = "110")]
1653 HopWindow(::prost::alloc::boxed::Box<super::HopWindowNode>),
1654 #[prost(message, tag = "111")]
1655 Merge(::prost::alloc::boxed::Box<super::MergeNode>),
1656 #[prost(message, tag = "112")]
1657 Exchange(::prost::alloc::boxed::Box<super::ExchangeNode>),
1658 #[prost(message, tag = "113")]
1659 StreamScan(::prost::alloc::boxed::Box<super::StreamScanNode>),
1660 #[prost(message, tag = "114")]
1661 BatchPlan(::prost::alloc::boxed::Box<super::BatchPlanNode>),
1662 #[prost(message, tag = "115")]
1663 Lookup(::prost::alloc::boxed::Box<super::LookupNode>),
1664 #[prost(message, tag = "116")]
1665 Arrange(::prost::alloc::boxed::Box<super::ArrangeNode>),
1666 #[prost(message, tag = "117")]
1667 LookupUnion(::prost::alloc::boxed::Box<super::LookupUnionNode>),
1668 #[prost(message, tag = "118")]
1669 Union(super::UnionNode),
1670 #[prost(message, tag = "119")]
1671 DeltaIndexJoin(::prost::alloc::boxed::Box<super::DeltaIndexJoinNode>),
1672 #[prost(message, tag = "120")]
1673 Sink(::prost::alloc::boxed::Box<super::SinkNode>),
1674 #[prost(message, tag = "121")]
1675 Expand(::prost::alloc::boxed::Box<super::ExpandNode>),
1676 #[prost(message, tag = "122")]
1677 DynamicFilter(::prost::alloc::boxed::Box<super::DynamicFilterNode>),
1678 #[prost(message, tag = "123")]
1679 ProjectSet(::prost::alloc::boxed::Box<super::ProjectSetNode>),
1680 #[prost(message, tag = "124")]
1681 GroupTopN(::prost::alloc::boxed::Box<super::GroupTopNNode>),
1682 #[prost(message, tag = "125")]
1683 Sort(::prost::alloc::boxed::Box<super::SortNode>),
1684 #[prost(message, tag = "126")]
1685 WatermarkFilter(::prost::alloc::boxed::Box<super::WatermarkFilterNode>),
1686 #[prost(message, tag = "127")]
1687 Dml(::prost::alloc::boxed::Box<super::DmlNode>),
1688 #[prost(message, tag = "128")]
1689 RowIdGen(::prost::alloc::boxed::Box<super::RowIdGenNode>),
1690 #[prost(message, tag = "129")]
1691 Now(::prost::alloc::boxed::Box<super::NowNode>),
1692 #[prost(message, tag = "130")]
1693 AppendOnlyGroupTopN(::prost::alloc::boxed::Box<super::GroupTopNNode>),
1694 #[prost(message, tag = "131")]
1695 TemporalJoin(::prost::alloc::boxed::Box<super::TemporalJoinNode>),
1696 #[prost(message, tag = "132")]
1697 BarrierRecv(::prost::alloc::boxed::Box<super::BarrierRecvNode>),
1698 #[prost(message, tag = "133")]
1699 Values(::prost::alloc::boxed::Box<super::ValuesNode>),
1700 #[prost(message, tag = "134")]
1701 AppendOnlyDedup(::prost::alloc::boxed::Box<super::DedupNode>),
1702 #[prost(message, tag = "135")]
1703 NoOp(super::NoOpNode),
1704 #[prost(message, tag = "136")]
1705 EowcOverWindow(::prost::alloc::boxed::Box<super::EowcOverWindowNode>),
1706 #[prost(message, tag = "137")]
1707 OverWindow(::prost::alloc::boxed::Box<super::OverWindowNode>),
1708 #[prost(message, tag = "138")]
1709 StreamFsFetch(::prost::alloc::boxed::Box<super::StreamFsFetchNode>),
1710 #[prost(message, tag = "139")]
1711 StreamCdcScan(::prost::alloc::boxed::Box<super::StreamCdcScanNode>),
1712 #[prost(message, tag = "140")]
1713 CdcFilter(::prost::alloc::boxed::Box<super::CdcFilterNode>),
1714 #[prost(message, tag = "142")]
1715 SourceBackfill(::prost::alloc::boxed::Box<super::SourceBackfillNode>),
1716 #[prost(message, tag = "143")]
1717 Changelog(::prost::alloc::boxed::Box<super::ChangeLogNode>),
1718 #[prost(message, tag = "144")]
1719 LocalApproxPercentile(
1720 ::prost::alloc::boxed::Box<super::LocalApproxPercentileNode>,
1721 ),
1722 #[prost(message, tag = "145")]
1723 GlobalApproxPercentile(
1724 ::prost::alloc::boxed::Box<super::GlobalApproxPercentileNode>,
1725 ),
1726 #[prost(message, tag = "146")]
1727 RowMerge(::prost::alloc::boxed::Box<super::RowMergeNode>),
1728 #[prost(message, tag = "147")]
1729 AsOfJoin(::prost::alloc::boxed::Box<super::AsOfJoinNode>),
1730 #[prost(message, tag = "148")]
1731 SyncLogStore(::prost::alloc::boxed::Box<super::SyncLogStoreNode>),
1732 #[prost(message, tag = "149")]
1733 MaterializedExprs(::prost::alloc::boxed::Box<super::MaterializedExprsNode>),
1734 #[prost(message, tag = "150")]
1735 VectorIndexWrite(::prost::alloc::boxed::Box<super::VectorIndexWriteNode>),
1736 #[prost(message, tag = "151")]
1737 UpstreamSinkUnion(::prost::alloc::boxed::Box<super::UpstreamSinkUnionNode>),
1738 #[prost(message, tag = "152")]
1739 LocalityProvider(::prost::alloc::boxed::Box<super::LocalityProviderNode>),
1740 #[prost(message, tag = "153")]
1741 EowcGapFill(::prost::alloc::boxed::Box<super::EowcGapFillNode>),
1742 #[prost(message, tag = "154")]
1743 GapFill(::prost::alloc::boxed::Box<super::GapFillNode>),
1744 #[prost(message, tag = "155")]
1745 VectorIndexLookupJoin(
1746 ::prost::alloc::boxed::Box<super::VectorIndexLookupJoinNode>,
1747 ),
1748 }
1749}
1750#[derive(prost_helpers::AnyPB)]
1763#[derive(Clone, PartialEq, ::prost::Message)]
1764pub struct DispatchOutputMapping {
1765 #[prost(uint32, repeated, tag = "1")]
1767 pub indices: ::prost::alloc::vec::Vec<u32>,
1768 #[prost(message, repeated, tag = "2")]
1773 pub types: ::prost::alloc::vec::Vec<dispatch_output_mapping::TypePair>,
1774}
1775pub mod dispatch_output_mapping {
1777 #[derive(prost_helpers::AnyPB)]
1778 #[derive(Clone, PartialEq, ::prost::Message)]
1779 pub struct TypePair {
1780 #[prost(message, optional, tag = "1")]
1781 pub upstream: ::core::option::Option<super::super::data::DataType>,
1782 #[prost(message, optional, tag = "2")]
1783 pub downstream: ::core::option::Option<super::super::data::DataType>,
1784 }
1785}
1786#[derive(prost_helpers::AnyPB)]
1789#[derive(Clone, PartialEq, ::prost::Message)]
1790pub struct DispatchStrategy {
1791 #[prost(enumeration = "DispatcherType", tag = "1")]
1792 pub r#type: i32,
1793 #[prost(uint32, repeated, tag = "2")]
1794 pub dist_key_indices: ::prost::alloc::vec::Vec<u32>,
1795 #[prost(message, optional, tag = "3")]
1796 pub output_mapping: ::core::option::Option<DispatchOutputMapping>,
1797}
1798#[derive(prost_helpers::AnyPB)]
1801#[derive(Clone, PartialEq, ::prost::Message)]
1802pub struct Dispatcher {
1803 #[prost(enumeration = "DispatcherType", tag = "1")]
1804 pub r#type: i32,
1805 #[prost(uint32, repeated, tag = "2")]
1808 pub dist_key_indices: ::prost::alloc::vec::Vec<u32>,
1809 #[prost(message, optional, tag = "6")]
1811 pub output_mapping: ::core::option::Option<DispatchOutputMapping>,
1812 #[prost(message, optional, tag = "3")]
1815 pub hash_mapping: ::core::option::Option<ActorMapping>,
1816 #[prost(uint64, tag = "4")]
1819 pub dispatcher_id: u64,
1820 #[prost(uint32, repeated, tag = "5", wrapper = "crate::id::ActorId")]
1822 pub downstream_actor_id: ::prost::alloc::vec::Vec<crate::id::ActorId>,
1823}
1824#[derive(prost_helpers::AnyPB)]
1826#[derive(Clone, PartialEq, ::prost::Message)]
1827pub struct StreamActor {
1828 #[prost(uint32, tag = "1", wrapper = "crate::id::ActorId")]
1829 pub actor_id: crate::id::ActorId,
1830 #[prost(uint32, tag = "2", wrapper = "crate::id::FragmentId")]
1831 pub fragment_id: crate::id::FragmentId,
1832 #[prost(message, repeated, tag = "4")]
1833 pub dispatcher: ::prost::alloc::vec::Vec<Dispatcher>,
1834 #[prost(message, optional, tag = "8")]
1837 pub vnode_bitmap: ::core::option::Option<super::common::Buffer>,
1838 #[prost(string, tag = "9")]
1840 pub mview_definition: ::prost::alloc::string::String,
1841 #[prost(message, optional, tag = "10")]
1843 pub expr_context: ::core::option::Option<super::plan_common::ExprContext>,
1844 #[prost(string, tag = "11")]
1846 pub config_override: ::prost::alloc::string::String,
1847}
1848#[derive(prost_helpers::AnyPB)]
1850#[derive(Clone, PartialEq, ::prost::Message)]
1851pub struct StreamContext {
1852 #[prost(string, tag = "1")]
1854 pub timezone: ::prost::alloc::string::String,
1855 #[prost(string, tag = "2")]
1857 pub config_override: ::prost::alloc::string::String,
1858}
1859#[derive(prost_helpers::AnyPB)]
1860#[derive(Clone, PartialEq, ::prost::Message)]
1861pub struct BackfillOrder {
1862 #[prost(map = "uint32, message", tag = "1")]
1863 pub order: ::std::collections::HashMap<u32, super::common::Uint32Vector>,
1864}
1865#[derive(prost_helpers::AnyPB)]
1870#[derive(Clone, PartialEq, ::prost::Message)]
1871pub struct StreamFragmentGraph {
1872 #[prost(map = "uint32, message", tag = "1", wrapper = "crate::id::FragmentId")]
1874 pub fragments: ::std::collections::HashMap<
1875 crate::id::FragmentId,
1876 stream_fragment_graph::StreamFragment,
1877 >,
1878 #[prost(message, repeated, tag = "2")]
1880 pub edges: ::prost::alloc::vec::Vec<stream_fragment_graph::StreamFragmentEdge>,
1881 #[prost(uint32, repeated, tag = "3", wrapper = "crate::id::TableId")]
1882 pub dependent_table_ids: ::prost::alloc::vec::Vec<crate::id::TableId>,
1883 #[prost(uint32, tag = "4")]
1884 pub table_ids_cnt: u32,
1885 #[prost(message, optional, tag = "5")]
1886 pub ctx: ::core::option::Option<StreamContext>,
1887 #[prost(message, optional, tag = "6")]
1889 pub parallelism: ::core::option::Option<stream_fragment_graph::Parallelism>,
1890 #[prost(uint32, tag = "7")]
1900 pub max_parallelism: u32,
1901 #[prost(message, optional, tag = "8")]
1903 pub backfill_order: ::core::option::Option<BackfillOrder>,
1904}
1905pub mod stream_fragment_graph {
1907 #[derive(prost_helpers::AnyPB)]
1908 #[derive(Clone, PartialEq, ::prost::Message)]
1909 pub struct StreamFragment {
1910 #[prost(uint32, tag = "1", wrapper = "crate::id::FragmentId")]
1912 pub fragment_id: crate::id::FragmentId,
1913 #[prost(message, optional, tag = "2")]
1915 pub node: ::core::option::Option<super::StreamNode>,
1916 #[prost(uint32, tag = "3")]
1918 pub fragment_type_mask: u32,
1919 #[prost(bool, tag = "4")]
1923 pub requires_singleton: bool,
1924 }
1925 #[derive(prost_helpers::AnyPB)]
1926 #[derive(Clone, PartialEq, ::prost::Message)]
1927 pub struct StreamFragmentEdge {
1928 #[prost(message, optional, tag = "1")]
1930 pub dispatch_strategy: ::core::option::Option<super::DispatchStrategy>,
1931 #[prost(uint64, tag = "3")]
1935 pub link_id: u64,
1936 #[prost(uint32, tag = "4", wrapper = "crate::id::FragmentId")]
1937 pub upstream_id: crate::id::FragmentId,
1938 #[prost(uint32, tag = "5", wrapper = "crate::id::FragmentId")]
1939 pub downstream_id: crate::id::FragmentId,
1940 }
1941 #[derive(prost_helpers::AnyPB)]
1942 #[derive(Clone, Copy, PartialEq, ::prost::Message)]
1943 pub struct Parallelism {
1944 #[prost(uint64, tag = "1")]
1945 pub parallelism: u64,
1946 }
1947}
1948#[derive(prost_helpers::AnyPB)]
1949#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1950#[repr(i32)]
1951pub enum SinkLogStoreType {
1952 Unspecified = 0,
1954 KvLogStore = 1,
1955 InMemoryLogStore = 2,
1956}
1957impl SinkLogStoreType {
1958 pub fn as_str_name(&self) -> &'static str {
1963 match self {
1964 Self::Unspecified => "SINK_LOG_STORE_TYPE_UNSPECIFIED",
1965 Self::KvLogStore => "SINK_LOG_STORE_TYPE_KV_LOG_STORE",
1966 Self::InMemoryLogStore => "SINK_LOG_STORE_TYPE_IN_MEMORY_LOG_STORE",
1967 }
1968 }
1969 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1971 match value {
1972 "SINK_LOG_STORE_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
1973 "SINK_LOG_STORE_TYPE_KV_LOG_STORE" => Some(Self::KvLogStore),
1974 "SINK_LOG_STORE_TYPE_IN_MEMORY_LOG_STORE" => Some(Self::InMemoryLogStore),
1975 _ => None,
1976 }
1977 }
1978}
1979#[derive(prost_helpers::AnyPB)]
1980#[derive(prost_helpers::Version)]
1981#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1982#[repr(i32)]
1983pub enum AggNodeVersion {
1984 Unspecified = 0,
1985 Issue12140 = 1,
1987 Issue13465 = 2,
1989}
1990impl AggNodeVersion {
1991 pub fn as_str_name(&self) -> &'static str {
1996 match self {
1997 Self::Unspecified => "AGG_NODE_VERSION_UNSPECIFIED",
1998 Self::Issue12140 => "AGG_NODE_VERSION_ISSUE_12140",
1999 Self::Issue13465 => "AGG_NODE_VERSION_ISSUE_13465",
2000 }
2001 }
2002 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2004 match value {
2005 "AGG_NODE_VERSION_UNSPECIFIED" => Some(Self::Unspecified),
2006 "AGG_NODE_VERSION_ISSUE_12140" => Some(Self::Issue12140),
2007 "AGG_NODE_VERSION_ISSUE_13465" => Some(Self::Issue13465),
2008 _ => None,
2009 }
2010 }
2011}
2012#[derive(prost_helpers::AnyPB)]
2013#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2014#[repr(i32)]
2015pub enum JoinEncodingType {
2016 Unspecified = 0,
2017 MemoryOptimized = 1,
2018 CpuOptimized = 2,
2019}
2020impl JoinEncodingType {
2021 pub fn as_str_name(&self) -> &'static str {
2026 match self {
2027 Self::Unspecified => "UNSPECIFIED",
2028 Self::MemoryOptimized => "MEMORY_OPTIMIZED",
2029 Self::CpuOptimized => "CPU_OPTIMIZED",
2030 }
2031 }
2032 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2034 match value {
2035 "UNSPECIFIED" => Some(Self::Unspecified),
2036 "MEMORY_OPTIMIZED" => Some(Self::MemoryOptimized),
2037 "CPU_OPTIMIZED" => Some(Self::CpuOptimized),
2038 _ => None,
2039 }
2040 }
2041}
2042#[derive(prost_helpers::AnyPB)]
2044#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2045#[repr(i32)]
2046pub enum StreamScanType {
2047 Unspecified = 0,
2048 Chain = 1,
2050 Rearrange = 2,
2052 Backfill = 3,
2054 UpstreamOnly = 4,
2056 ArrangementBackfill = 5,
2058 SnapshotBackfill = 6,
2060 CrossDbSnapshotBackfill = 7,
2062}
2063impl StreamScanType {
2064 pub fn as_str_name(&self) -> &'static str {
2069 match self {
2070 Self::Unspecified => "STREAM_SCAN_TYPE_UNSPECIFIED",
2071 Self::Chain => "STREAM_SCAN_TYPE_CHAIN",
2072 Self::Rearrange => "STREAM_SCAN_TYPE_REARRANGE",
2073 Self::Backfill => "STREAM_SCAN_TYPE_BACKFILL",
2074 Self::UpstreamOnly => "STREAM_SCAN_TYPE_UPSTREAM_ONLY",
2075 Self::ArrangementBackfill => "STREAM_SCAN_TYPE_ARRANGEMENT_BACKFILL",
2076 Self::SnapshotBackfill => "STREAM_SCAN_TYPE_SNAPSHOT_BACKFILL",
2077 Self::CrossDbSnapshotBackfill => {
2078 "STREAM_SCAN_TYPE_CROSS_DB_SNAPSHOT_BACKFILL"
2079 }
2080 }
2081 }
2082 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2084 match value {
2085 "STREAM_SCAN_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
2086 "STREAM_SCAN_TYPE_CHAIN" => Some(Self::Chain),
2087 "STREAM_SCAN_TYPE_REARRANGE" => Some(Self::Rearrange),
2088 "STREAM_SCAN_TYPE_BACKFILL" => Some(Self::Backfill),
2089 "STREAM_SCAN_TYPE_UPSTREAM_ONLY" => Some(Self::UpstreamOnly),
2090 "STREAM_SCAN_TYPE_ARRANGEMENT_BACKFILL" => Some(Self::ArrangementBackfill),
2091 "STREAM_SCAN_TYPE_SNAPSHOT_BACKFILL" => Some(Self::SnapshotBackfill),
2092 "STREAM_SCAN_TYPE_CROSS_DB_SNAPSHOT_BACKFILL" => {
2093 Some(Self::CrossDbSnapshotBackfill)
2094 }
2095 _ => None,
2096 }
2097 }
2098}
2099#[derive(prost_helpers::AnyPB)]
2100#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2101#[repr(i32)]
2102pub enum OverWindowCachePolicy {
2103 Unspecified = 0,
2104 Full = 1,
2105 Recent = 2,
2106 RecentFirstN = 3,
2107 RecentLastN = 4,
2108}
2109impl OverWindowCachePolicy {
2110 pub fn as_str_name(&self) -> &'static str {
2115 match self {
2116 Self::Unspecified => "OVER_WINDOW_CACHE_POLICY_UNSPECIFIED",
2117 Self::Full => "OVER_WINDOW_CACHE_POLICY_FULL",
2118 Self::Recent => "OVER_WINDOW_CACHE_POLICY_RECENT",
2119 Self::RecentFirstN => "OVER_WINDOW_CACHE_POLICY_RECENT_FIRST_N",
2120 Self::RecentLastN => "OVER_WINDOW_CACHE_POLICY_RECENT_LAST_N",
2121 }
2122 }
2123 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2125 match value {
2126 "OVER_WINDOW_CACHE_POLICY_UNSPECIFIED" => Some(Self::Unspecified),
2127 "OVER_WINDOW_CACHE_POLICY_FULL" => Some(Self::Full),
2128 "OVER_WINDOW_CACHE_POLICY_RECENT" => Some(Self::Recent),
2129 "OVER_WINDOW_CACHE_POLICY_RECENT_FIRST_N" => Some(Self::RecentFirstN),
2130 "OVER_WINDOW_CACHE_POLICY_RECENT_LAST_N" => Some(Self::RecentLastN),
2131 _ => None,
2132 }
2133 }
2134}
2135#[derive(prost_helpers::AnyPB)]
2136#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2137#[repr(i32)]
2138pub enum DispatcherType {
2139 Unspecified = 0,
2140 Hash = 1,
2142 Broadcast = 2,
2147 Simple = 3,
2149 NoShuffle = 4,
2153}
2154impl DispatcherType {
2155 pub fn as_str_name(&self) -> &'static str {
2160 match self {
2161 Self::Unspecified => "DISPATCHER_TYPE_UNSPECIFIED",
2162 Self::Hash => "DISPATCHER_TYPE_HASH",
2163 Self::Broadcast => "DISPATCHER_TYPE_BROADCAST",
2164 Self::Simple => "DISPATCHER_TYPE_SIMPLE",
2165 Self::NoShuffle => "DISPATCHER_TYPE_NO_SHUFFLE",
2166 }
2167 }
2168 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2170 match value {
2171 "DISPATCHER_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
2172 "DISPATCHER_TYPE_HASH" => Some(Self::Hash),
2173 "DISPATCHER_TYPE_BROADCAST" => Some(Self::Broadcast),
2174 "DISPATCHER_TYPE_SIMPLE" => Some(Self::Simple),
2175 "DISPATCHER_TYPE_NO_SHUFFLE" => Some(Self::NoShuffle),
2176 _ => None,
2177 }
2178 }
2179}