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")]
206 pub subscriber_id: u32,
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 #[prost(uint32, repeated, tag = "255", wrapper = "crate::id::ActorId")]
345 pub passed_actors: ::prost::alloc::vec::Vec<crate::id::ActorId>,
346}
347pub mod barrier {
349 #[derive(prost_helpers::AnyPB)]
350 #[derive(::enum_as_inner::EnumAsInner)]
351 #[derive(
352 Clone,
353 Copy,
354 Debug,
355 PartialEq,
356 Eq,
357 Hash,
358 PartialOrd,
359 Ord,
360 ::prost::Enumeration
361 )]
362 #[repr(i32)]
363 pub enum BarrierKind {
364 Unspecified = 0,
365 Initial = 1,
368 Barrier = 2,
370 Checkpoint = 3,
372 }
373 impl BarrierKind {
374 pub fn as_str_name(&self) -> &'static str {
379 match self {
380 Self::Unspecified => "BARRIER_KIND_UNSPECIFIED",
381 Self::Initial => "BARRIER_KIND_INITIAL",
382 Self::Barrier => "BARRIER_KIND_BARRIER",
383 Self::Checkpoint => "BARRIER_KIND_CHECKPOINT",
384 }
385 }
386 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
388 match value {
389 "BARRIER_KIND_UNSPECIFIED" => Some(Self::Unspecified),
390 "BARRIER_KIND_INITIAL" => Some(Self::Initial),
391 "BARRIER_KIND_BARRIER" => Some(Self::Barrier),
392 "BARRIER_KIND_CHECKPOINT" => Some(Self::Checkpoint),
393 _ => None,
394 }
395 }
396 }
397}
398#[derive(prost_helpers::AnyPB)]
399#[derive(Clone, PartialEq, ::prost::Message)]
400pub struct Watermark {
401 #[prost(message, optional, tag = "1")]
403 pub column: ::core::option::Option<super::expr::InputRef>,
404 #[prost(message, optional, tag = "3")]
406 pub val: ::core::option::Option<super::data::Datum>,
407}
408#[derive(prost_helpers::AnyPB)]
409#[derive(Clone, PartialEq, ::prost::Message)]
410pub struct StreamMessage {
411 #[prost(oneof = "stream_message::StreamMessage", tags = "1, 2, 3")]
412 pub stream_message: ::core::option::Option<stream_message::StreamMessage>,
413}
414pub mod stream_message {
416 #[derive(prost_helpers::AnyPB)]
417 #[derive(Clone, PartialEq, ::prost::Oneof)]
418 pub enum StreamMessage {
419 #[prost(message, tag = "1")]
420 StreamChunk(super::super::data::StreamChunk),
421 #[prost(message, tag = "2")]
422 Barrier(super::Barrier),
423 #[prost(message, tag = "3")]
424 Watermark(super::Watermark),
425 }
426}
427#[derive(prost_helpers::AnyPB)]
428#[derive(Clone, PartialEq, ::prost::Message)]
429pub struct StreamMessageBatch {
430 #[prost(oneof = "stream_message_batch::StreamMessageBatch", tags = "1, 2, 3")]
431 pub stream_message_batch: ::core::option::Option<
432 stream_message_batch::StreamMessageBatch,
433 >,
434}
435pub mod stream_message_batch {
437 #[derive(prost_helpers::AnyPB)]
438 #[derive(Clone, PartialEq, ::prost::Message)]
439 pub struct BarrierBatch {
440 #[prost(message, repeated, tag = "1")]
441 pub barriers: ::prost::alloc::vec::Vec<super::Barrier>,
442 }
443 #[derive(prost_helpers::AnyPB)]
444 #[derive(Clone, PartialEq, ::prost::Oneof)]
445 pub enum StreamMessageBatch {
446 #[prost(message, tag = "1")]
447 StreamChunk(super::super::data::StreamChunk),
448 #[prost(message, tag = "2")]
449 BarrierBatch(BarrierBatch),
450 #[prost(message, tag = "3")]
451 Watermark(super::Watermark),
452 }
453}
454#[derive(prost_helpers::AnyPB)]
456#[derive(Clone, PartialEq, ::prost::Message)]
457pub struct ActorMapping {
458 #[prost(uint32, repeated, tag = "1")]
459 pub original_indices: ::prost::alloc::vec::Vec<u32>,
460 #[prost(uint32, repeated, tag = "2", wrapper = "crate::id::ActorId")]
461 pub data: ::prost::alloc::vec::Vec<crate::id::ActorId>,
462}
463#[derive(prost_helpers::AnyPB)]
464#[derive(Clone, PartialEq, ::prost::Message)]
465pub struct Columns {
466 #[prost(message, repeated, tag = "1")]
467 pub columns: ::prost::alloc::vec::Vec<super::plan_common::ColumnCatalog>,
468}
469#[derive(prost_helpers::AnyPB)]
470#[derive(Clone, PartialEq, ::prost::Message)]
471pub struct StreamSource {
472 #[prost(uint32, tag = "1", wrapper = "crate::id::SourceId")]
473 pub source_id: crate::id::SourceId,
474 #[prost(message, optional, tag = "2")]
475 pub state_table: ::core::option::Option<super::catalog::Table>,
476 #[prost(uint32, optional, tag = "3")]
477 pub row_id_index: ::core::option::Option<u32>,
478 #[prost(message, repeated, tag = "4")]
479 pub columns: ::prost::alloc::vec::Vec<super::plan_common::ColumnCatalog>,
480 #[prost(btree_map = "string, string", tag = "6")]
481 pub with_properties: ::prost::alloc::collections::BTreeMap<
482 ::prost::alloc::string::String,
483 ::prost::alloc::string::String,
484 >,
485 #[prost(message, optional, tag = "7")]
486 pub info: ::core::option::Option<super::catalog::StreamSourceInfo>,
487 #[prost(string, tag = "8")]
488 pub source_name: ::prost::alloc::string::String,
489 #[prost(uint32, optional, tag = "9")]
491 pub rate_limit: ::core::option::Option<u32>,
492 #[prost(btree_map = "string, message", tag = "10")]
493 pub secret_refs: ::prost::alloc::collections::BTreeMap<
494 ::prost::alloc::string::String,
495 super::secret::SecretRef,
496 >,
497 #[prost(message, optional, tag = "11")]
499 pub downstream_columns: ::core::option::Option<Columns>,
500 #[prost(message, optional, tag = "12")]
501 pub refresh_mode: ::core::option::Option<super::plan_common::SourceRefreshMode>,
502 #[prost(uint32, optional, tag = "13", wrapper = "crate::id::TableId")]
503 pub associated_table_id: ::core::option::Option<crate::id::TableId>,
504}
505#[derive(prost_helpers::AnyPB)]
507#[derive(Clone, PartialEq, ::prost::Message)]
508pub struct StreamFsFetch {
509 #[prost(uint32, tag = "1", wrapper = "crate::id::SourceId")]
510 pub source_id: crate::id::SourceId,
511 #[prost(message, optional, tag = "2")]
512 pub state_table: ::core::option::Option<super::catalog::Table>,
513 #[prost(uint32, optional, tag = "3")]
514 pub row_id_index: ::core::option::Option<u32>,
515 #[prost(message, repeated, tag = "4")]
516 pub columns: ::prost::alloc::vec::Vec<super::plan_common::ColumnCatalog>,
517 #[prost(btree_map = "string, string", tag = "6")]
518 pub with_properties: ::prost::alloc::collections::BTreeMap<
519 ::prost::alloc::string::String,
520 ::prost::alloc::string::String,
521 >,
522 #[prost(message, optional, tag = "7")]
523 pub info: ::core::option::Option<super::catalog::StreamSourceInfo>,
524 #[prost(string, tag = "8")]
525 pub source_name: ::prost::alloc::string::String,
526 #[prost(uint32, optional, tag = "9")]
528 pub rate_limit: ::core::option::Option<u32>,
529 #[prost(btree_map = "string, message", tag = "10")]
530 pub secret_refs: ::prost::alloc::collections::BTreeMap<
531 ::prost::alloc::string::String,
532 super::secret::SecretRef,
533 >,
534 #[prost(message, optional, tag = "11")]
535 pub refresh_mode: ::core::option::Option<super::plan_common::SourceRefreshMode>,
536 #[prost(uint32, optional, tag = "12", wrapper = "crate::id::TableId")]
537 pub associated_table_id: ::core::option::Option<crate::id::TableId>,
538}
539#[derive(prost_helpers::AnyPB)]
542#[derive(Clone, Copy, PartialEq, ::prost::Message)]
543pub struct BarrierRecvNode {}
544#[derive(prost_helpers::AnyPB)]
545#[derive(Clone, PartialEq, ::prost::Message)]
546pub struct SourceNode {
547 #[prost(message, optional, tag = "1")]
550 pub source_inner: ::core::option::Option<StreamSource>,
551}
552#[derive(prost_helpers::AnyPB)]
553#[derive(Clone, PartialEq, ::prost::Message)]
554pub struct StreamFsFetchNode {
555 #[prost(message, optional, tag = "1")]
556 pub node_inner: ::core::option::Option<StreamFsFetch>,
557}
558#[derive(prost_helpers::AnyPB)]
561#[derive(Clone, PartialEq, ::prost::Message)]
562pub struct SourceBackfillNode {
563 #[prost(uint32, tag = "1", wrapper = "crate::id::SourceId")]
564 pub upstream_source_id: crate::id::SourceId,
565 #[prost(uint32, optional, tag = "2")]
566 pub row_id_index: ::core::option::Option<u32>,
567 #[prost(message, repeated, tag = "3")]
568 pub columns: ::prost::alloc::vec::Vec<super::plan_common::ColumnCatalog>,
569 #[prost(message, optional, tag = "4")]
570 pub info: ::core::option::Option<super::catalog::StreamSourceInfo>,
571 #[prost(string, tag = "5")]
572 pub source_name: ::prost::alloc::string::String,
573 #[prost(btree_map = "string, string", tag = "6")]
574 pub with_properties: ::prost::alloc::collections::BTreeMap<
575 ::prost::alloc::string::String,
576 ::prost::alloc::string::String,
577 >,
578 #[prost(uint32, optional, tag = "7")]
580 pub rate_limit: ::core::option::Option<u32>,
581 #[prost(message, optional, tag = "8")]
583 pub state_table: ::core::option::Option<super::catalog::Table>,
584 #[prost(btree_map = "string, message", tag = "9")]
585 pub secret_refs: ::prost::alloc::collections::BTreeMap<
586 ::prost::alloc::string::String,
587 super::secret::SecretRef,
588 >,
589}
590#[derive(prost_helpers::AnyPB)]
591#[derive(Clone, PartialEq, ::prost::Message)]
592pub struct SinkDesc {
593 #[prost(uint32, tag = "1", wrapper = "crate::id::SinkId")]
594 pub id: crate::id::SinkId,
595 #[prost(string, tag = "2")]
596 pub name: ::prost::alloc::string::String,
597 #[prost(string, tag = "3")]
598 pub definition: ::prost::alloc::string::String,
599 #[prost(message, repeated, tag = "5")]
600 pub plan_pk: ::prost::alloc::vec::Vec<super::common::ColumnOrder>,
601 #[prost(uint32, repeated, tag = "6")]
602 pub downstream_pk: ::prost::alloc::vec::Vec<u32>,
603 #[prost(uint32, repeated, tag = "7")]
604 pub distribution_key: ::prost::alloc::vec::Vec<u32>,
605 #[prost(btree_map = "string, string", tag = "8")]
606 pub properties: ::prost::alloc::collections::BTreeMap<
607 ::prost::alloc::string::String,
608 ::prost::alloc::string::String,
609 >,
610 #[prost(enumeration = "super::catalog::SinkType", tag = "9")]
612 pub sink_type: i32,
613 #[prost(message, repeated, tag = "10")]
614 pub column_catalogs: ::prost::alloc::vec::Vec<super::plan_common::ColumnCatalog>,
615 #[prost(string, tag = "11")]
616 pub db_name: ::prost::alloc::string::String,
617 #[prost(string, tag = "12")]
620 pub sink_from_name: ::prost::alloc::string::String,
621 #[prost(message, optional, tag = "13")]
622 pub format_desc: ::core::option::Option<super::catalog::SinkFormatDesc>,
623 #[prost(uint32, optional, tag = "14")]
624 pub target_table: ::core::option::Option<u32>,
625 #[prost(uint64, optional, tag = "15")]
626 pub extra_partition_col_idx: ::core::option::Option<u64>,
627 #[prost(btree_map = "string, message", tag = "16")]
628 pub secret_refs: ::prost::alloc::collections::BTreeMap<
629 ::prost::alloc::string::String,
630 super::secret::SecretRef,
631 >,
632}
633#[derive(prost_helpers::AnyPB)]
634#[derive(Clone, PartialEq, ::prost::Message)]
635pub struct SinkNode {
636 #[prost(message, optional, tag = "1")]
637 pub sink_desc: ::core::option::Option<SinkDesc>,
638 #[prost(message, optional, tag = "2")]
640 pub table: ::core::option::Option<super::catalog::Table>,
641 #[prost(enumeration = "SinkLogStoreType", tag = "3")]
642 pub log_store_type: i32,
643 #[prost(uint32, optional, tag = "4")]
644 pub rate_limit: ::core::option::Option<u32>,
645}
646#[derive(prost_helpers::AnyPB)]
647#[derive(Clone, PartialEq, ::prost::Message)]
648pub struct ProjectNode {
649 #[prost(message, repeated, tag = "1")]
650 pub select_list: ::prost::alloc::vec::Vec<super::expr::ExprNode>,
651 #[prost(uint32, repeated, tag = "2")]
655 pub watermark_input_cols: ::prost::alloc::vec::Vec<u32>,
656 #[prost(uint32, repeated, tag = "3")]
657 pub watermark_output_cols: ::prost::alloc::vec::Vec<u32>,
658 #[prost(uint32, repeated, tag = "4")]
659 pub nondecreasing_exprs: ::prost::alloc::vec::Vec<u32>,
660 #[prost(bool, tag = "5")]
663 pub noop_update_hint: bool,
664}
665#[derive(prost_helpers::AnyPB)]
666#[derive(Clone, PartialEq, ::prost::Message)]
667pub struct FilterNode {
668 #[prost(message, optional, tag = "1")]
669 pub search_condition: ::core::option::Option<super::expr::ExprNode>,
670}
671#[derive(prost_helpers::AnyPB)]
672#[derive(Clone, PartialEq, ::prost::Message)]
673pub struct ChangeLogNode {
674 #[prost(bool, tag = "1")]
676 pub need_op: bool,
677 #[prost(uint32, repeated, tag = "2")]
678 pub distribution_keys: ::prost::alloc::vec::Vec<u32>,
679}
680#[derive(prost_helpers::AnyPB)]
681#[derive(Clone, PartialEq, ::prost::Message)]
682pub struct CdcFilterNode {
683 #[prost(message, optional, tag = "1")]
684 pub search_condition: ::core::option::Option<super::expr::ExprNode>,
685 #[prost(uint32, tag = "2", wrapper = "crate::id::SourceId")]
686 pub upstream_source_id: crate::id::SourceId,
687}
688#[derive(prost_helpers::AnyPB)]
696#[derive(Clone, PartialEq, ::prost::Message)]
697pub struct MaterializeNode {
698 #[prost(uint32, tag = "1", wrapper = "crate::id::TableId")]
699 pub table_id: crate::id::TableId,
700 #[prost(message, repeated, tag = "2")]
702 pub column_orders: ::prost::alloc::vec::Vec<super::common::ColumnOrder>,
703 #[prost(message, optional, tag = "3")]
710 pub table: ::core::option::Option<super::catalog::Table>,
711 #[prost(message, optional, tag = "5")]
720 pub staging_table: ::core::option::Option<super::catalog::Table>,
721 #[prost(message, optional, tag = "6")]
734 pub refresh_progress_table: ::core::option::Option<super::catalog::Table>,
735}
736#[derive(prost_helpers::AnyPB)]
737#[derive(Clone, PartialEq, ::prost::Message)]
738pub struct AggCallState {
739 #[prost(oneof = "agg_call_state::Inner", tags = "1, 3")]
740 pub inner: ::core::option::Option<agg_call_state::Inner>,
741}
742pub mod agg_call_state {
744 #[derive(prost_helpers::AnyPB)]
746 #[derive(Clone, Copy, PartialEq, ::prost::Message)]
747 pub struct ValueState {}
748 #[derive(prost_helpers::AnyPB)]
750 #[derive(Clone, PartialEq, ::prost::Message)]
751 pub struct MaterializedInputState {
752 #[prost(message, optional, tag = "1")]
753 pub table: ::core::option::Option<super::super::catalog::Table>,
754 #[prost(uint32, repeated, tag = "2")]
756 pub included_upstream_indices: ::prost::alloc::vec::Vec<u32>,
757 #[prost(uint32, repeated, tag = "3")]
758 pub table_value_indices: ::prost::alloc::vec::Vec<u32>,
759 #[prost(message, repeated, tag = "4")]
760 pub order_columns: ::prost::alloc::vec::Vec<super::super::common::ColumnOrder>,
761 }
762 #[derive(prost_helpers::AnyPB)]
763 #[derive(Clone, PartialEq, ::prost::Oneof)]
764 pub enum Inner {
765 #[prost(message, tag = "1")]
766 ValueState(ValueState),
767 #[prost(message, tag = "3")]
768 MaterializedInputState(MaterializedInputState),
769 }
770}
771#[derive(prost_helpers::AnyPB)]
772#[derive(Clone, PartialEq, ::prost::Message)]
773pub struct SimpleAggNode {
774 #[prost(message, repeated, tag = "1")]
775 pub agg_calls: ::prost::alloc::vec::Vec<super::expr::AggCall>,
776 #[prost(message, repeated, tag = "3")]
777 pub agg_call_states: ::prost::alloc::vec::Vec<AggCallState>,
778 #[prost(message, optional, tag = "4")]
779 pub intermediate_state_table: ::core::option::Option<super::catalog::Table>,
780 #[prost(bool, tag = "5")]
783 pub is_append_only: bool,
784 #[prost(map = "uint32, message", tag = "6")]
785 pub distinct_dedup_tables: ::std::collections::HashMap<u32, super::catalog::Table>,
786 #[prost(uint32, tag = "7")]
787 pub row_count_index: u32,
788 #[prost(enumeration = "AggNodeVersion", tag = "8")]
789 pub version: i32,
790 #[prost(bool, tag = "9")]
793 pub must_output_per_barrier: bool,
794}
795#[derive(prost_helpers::AnyPB)]
796#[derive(Clone, PartialEq, ::prost::Message)]
797pub struct HashAggNode {
798 #[prost(uint32, repeated, tag = "1")]
799 pub group_key: ::prost::alloc::vec::Vec<u32>,
800 #[prost(message, repeated, tag = "2")]
801 pub agg_calls: ::prost::alloc::vec::Vec<super::expr::AggCall>,
802 #[prost(message, repeated, tag = "3")]
803 pub agg_call_states: ::prost::alloc::vec::Vec<AggCallState>,
804 #[prost(message, optional, tag = "4")]
805 pub intermediate_state_table: ::core::option::Option<super::catalog::Table>,
806 #[prost(bool, tag = "5")]
809 pub is_append_only: bool,
810 #[prost(map = "uint32, message", tag = "6")]
811 pub distinct_dedup_tables: ::std::collections::HashMap<u32, super::catalog::Table>,
812 #[prost(uint32, tag = "7")]
813 pub row_count_index: u32,
814 #[prost(bool, tag = "8")]
815 pub emit_on_window_close: bool,
816 #[prost(enumeration = "AggNodeVersion", tag = "9")]
817 pub version: i32,
818}
819#[derive(prost_helpers::AnyPB)]
820#[derive(Clone, PartialEq, ::prost::Message)]
821pub struct TopNNode {
822 #[prost(uint64, tag = "1")]
824 pub limit: u64,
825 #[prost(uint64, tag = "2")]
826 pub offset: u64,
827 #[prost(message, optional, tag = "3")]
828 pub table: ::core::option::Option<super::catalog::Table>,
829 #[prost(message, repeated, tag = "4")]
830 pub order_by: ::prost::alloc::vec::Vec<super::common::ColumnOrder>,
831 #[prost(bool, tag = "5")]
832 pub with_ties: bool,
833}
834#[derive(prost_helpers::AnyPB)]
835#[derive(Clone, PartialEq, ::prost::Message)]
836pub struct GroupTopNNode {
837 #[prost(uint64, tag = "1")]
839 pub limit: u64,
840 #[prost(uint64, tag = "2")]
841 pub offset: u64,
842 #[prost(uint32, repeated, tag = "3")]
843 pub group_key: ::prost::alloc::vec::Vec<u32>,
844 #[prost(message, optional, tag = "4")]
845 pub table: ::core::option::Option<super::catalog::Table>,
846 #[prost(message, repeated, tag = "5")]
847 pub order_by: ::prost::alloc::vec::Vec<super::common::ColumnOrder>,
848 #[prost(bool, tag = "6")]
849 pub with_ties: bool,
850}
851#[derive(prost_helpers::AnyPB)]
852#[derive(Clone, PartialEq, ::prost::Message)]
853pub struct DeltaExpression {
854 #[prost(enumeration = "super::expr::expr_node::Type", tag = "1")]
855 pub delta_type: i32,
856 #[prost(message, optional, tag = "2")]
857 pub delta: ::core::option::Option<super::expr::ExprNode>,
858}
859#[derive(prost_helpers::AnyPB)]
860#[derive(Clone, PartialEq, ::prost::Message)]
861pub struct InequalityPair {
862 #[prost(uint32, tag = "1")]
864 pub key_required_larger: u32,
865 #[prost(uint32, tag = "2")]
867 pub key_required_smaller: u32,
868 #[prost(bool, tag = "3")]
870 pub clean_state: bool,
871 #[prost(message, optional, tag = "4")]
873 pub delta_expression: ::core::option::Option<DeltaExpression>,
874}
875#[derive(prost_helpers::AnyPB)]
876#[derive(Clone, PartialEq, ::prost::Message)]
877pub struct HashJoinNode {
878 #[prost(enumeration = "super::plan_common::JoinType", tag = "1")]
879 pub join_type: i32,
880 #[prost(int32, repeated, tag = "2")]
881 pub left_key: ::prost::alloc::vec::Vec<i32>,
882 #[prost(int32, repeated, tag = "3")]
883 pub right_key: ::prost::alloc::vec::Vec<i32>,
884 #[prost(message, optional, tag = "4")]
885 pub condition: ::core::option::Option<super::expr::ExprNode>,
886 #[prost(message, repeated, tag = "5")]
887 pub inequality_pairs: ::prost::alloc::vec::Vec<InequalityPair>,
888 #[prost(message, optional, tag = "6")]
890 pub left_table: ::core::option::Option<super::catalog::Table>,
891 #[prost(message, optional, tag = "7")]
893 pub right_table: ::core::option::Option<super::catalog::Table>,
894 #[prost(message, optional, tag = "8")]
896 pub left_degree_table: ::core::option::Option<super::catalog::Table>,
897 #[prost(message, optional, tag = "9")]
899 pub right_degree_table: ::core::option::Option<super::catalog::Table>,
900 #[prost(uint32, repeated, tag = "10")]
902 pub output_indices: ::prost::alloc::vec::Vec<u32>,
903 #[prost(uint32, repeated, tag = "11")]
908 pub left_deduped_input_pk_indices: ::prost::alloc::vec::Vec<u32>,
909 #[prost(uint32, repeated, tag = "12")]
914 pub right_deduped_input_pk_indices: ::prost::alloc::vec::Vec<u32>,
915 #[prost(bool, repeated, tag = "13")]
916 pub null_safe: ::prost::alloc::vec::Vec<bool>,
917 #[prost(bool, tag = "14")]
920 pub is_append_only: bool,
921 #[prost(enumeration = "JoinEncodingType", tag = "15")]
923 pub join_encoding_type: i32,
924}
925#[derive(prost_helpers::AnyPB)]
926#[derive(Clone, PartialEq, ::prost::Message)]
927pub struct AsOfJoinNode {
928 #[prost(enumeration = "super::plan_common::AsOfJoinType", tag = "1")]
929 pub join_type: i32,
930 #[prost(int32, repeated, tag = "2")]
931 pub left_key: ::prost::alloc::vec::Vec<i32>,
932 #[prost(int32, repeated, tag = "3")]
933 pub right_key: ::prost::alloc::vec::Vec<i32>,
934 #[prost(message, optional, tag = "4")]
936 pub left_table: ::core::option::Option<super::catalog::Table>,
937 #[prost(message, optional, tag = "5")]
939 pub right_table: ::core::option::Option<super::catalog::Table>,
940 #[prost(uint32, repeated, tag = "6")]
942 pub output_indices: ::prost::alloc::vec::Vec<u32>,
943 #[prost(uint32, repeated, tag = "7")]
947 pub left_deduped_input_pk_indices: ::prost::alloc::vec::Vec<u32>,
948 #[prost(uint32, repeated, tag = "8")]
952 pub right_deduped_input_pk_indices: ::prost::alloc::vec::Vec<u32>,
953 #[prost(bool, repeated, tag = "9")]
954 pub null_safe: ::prost::alloc::vec::Vec<bool>,
955 #[prost(message, optional, tag = "10")]
956 pub asof_desc: ::core::option::Option<super::plan_common::AsOfJoinDesc>,
957 #[prost(enumeration = "JoinEncodingType", tag = "11")]
959 pub join_encoding_type: i32,
960}
961#[derive(prost_helpers::AnyPB)]
962#[derive(Clone, PartialEq, ::prost::Message)]
963pub struct TemporalJoinNode {
964 #[prost(enumeration = "super::plan_common::JoinType", tag = "1")]
965 pub join_type: i32,
966 #[prost(int32, repeated, tag = "2")]
967 pub left_key: ::prost::alloc::vec::Vec<i32>,
968 #[prost(int32, repeated, tag = "3")]
969 pub right_key: ::prost::alloc::vec::Vec<i32>,
970 #[prost(bool, repeated, tag = "4")]
971 pub null_safe: ::prost::alloc::vec::Vec<bool>,
972 #[prost(message, optional, tag = "5")]
973 pub condition: ::core::option::Option<super::expr::ExprNode>,
974 #[prost(uint32, repeated, tag = "6")]
976 pub output_indices: ::prost::alloc::vec::Vec<u32>,
977 #[prost(message, optional, tag = "7")]
979 pub table_desc: ::core::option::Option<super::plan_common::StorageTableDesc>,
980 #[prost(uint32, repeated, tag = "8")]
982 pub table_output_indices: ::prost::alloc::vec::Vec<u32>,
983 #[prost(message, optional, tag = "9")]
985 pub memo_table: ::core::option::Option<super::catalog::Table>,
986 #[prost(bool, tag = "10")]
988 pub is_nested_loop: bool,
989}
990#[derive(prost_helpers::AnyPB)]
991#[derive(Clone, PartialEq, ::prost::Message)]
992pub struct DynamicFilterNode {
993 #[prost(uint32, tag = "1")]
994 pub left_key: u32,
995 #[prost(message, optional, tag = "2")]
997 pub condition: ::core::option::Option<super::expr::ExprNode>,
998 #[prost(message, optional, tag = "3")]
1000 pub left_table: ::core::option::Option<super::catalog::Table>,
1001 #[prost(message, optional, tag = "4")]
1003 pub right_table: ::core::option::Option<super::catalog::Table>,
1004 #[deprecated]
1011 #[prost(bool, tag = "5")]
1012 pub condition_always_relax: bool,
1013}
1014#[derive(prost_helpers::AnyPB)]
1017#[derive(Clone, PartialEq, ::prost::Message)]
1018pub struct DeltaIndexJoinNode {
1019 #[prost(enumeration = "super::plan_common::JoinType", tag = "1")]
1020 pub join_type: i32,
1021 #[prost(int32, repeated, tag = "2")]
1022 pub left_key: ::prost::alloc::vec::Vec<i32>,
1023 #[prost(int32, repeated, tag = "3")]
1024 pub right_key: ::prost::alloc::vec::Vec<i32>,
1025 #[prost(message, optional, tag = "4")]
1026 pub condition: ::core::option::Option<super::expr::ExprNode>,
1027 #[prost(uint32, tag = "7", wrapper = "crate::id::TableId")]
1029 pub left_table_id: crate::id::TableId,
1030 #[prost(uint32, tag = "8", wrapper = "crate::id::TableId")]
1032 pub right_table_id: crate::id::TableId,
1033 #[prost(message, optional, tag = "9")]
1035 pub left_info: ::core::option::Option<ArrangementInfo>,
1036 #[prost(message, optional, tag = "10")]
1038 pub right_info: ::core::option::Option<ArrangementInfo>,
1039 #[prost(uint32, repeated, tag = "11")]
1041 pub output_indices: ::prost::alloc::vec::Vec<u32>,
1042}
1043#[derive(prost_helpers::AnyPB)]
1044#[derive(Clone, PartialEq, ::prost::Message)]
1045pub struct HopWindowNode {
1046 #[prost(uint32, tag = "1")]
1047 pub time_col: u32,
1048 #[prost(message, optional, tag = "2")]
1049 pub window_slide: ::core::option::Option<super::data::Interval>,
1050 #[prost(message, optional, tag = "3")]
1051 pub window_size: ::core::option::Option<super::data::Interval>,
1052 #[prost(uint32, repeated, tag = "4")]
1053 pub output_indices: ::prost::alloc::vec::Vec<u32>,
1054 #[prost(message, repeated, tag = "5")]
1055 pub window_start_exprs: ::prost::alloc::vec::Vec<super::expr::ExprNode>,
1056 #[prost(message, repeated, tag = "6")]
1057 pub window_end_exprs: ::prost::alloc::vec::Vec<super::expr::ExprNode>,
1058}
1059#[derive(prost_helpers::AnyPB)]
1060#[derive(Clone, PartialEq, ::prost::Message)]
1061pub struct MergeNode {
1062 #[deprecated]
1069 #[prost(uint32, repeated, packed = "false", tag = "1")]
1070 pub upstream_actor_id: ::prost::alloc::vec::Vec<u32>,
1071 #[prost(uint32, tag = "2", wrapper = "crate::id::FragmentId")]
1072 pub upstream_fragment_id: crate::id::FragmentId,
1073 #[prost(enumeration = "DispatcherType", tag = "3")]
1076 pub upstream_dispatcher_type: i32,
1077 #[deprecated]
1079 #[prost(message, repeated, tag = "4")]
1080 pub fields: ::prost::alloc::vec::Vec<super::plan_common::Field>,
1081}
1082#[derive(prost_helpers::AnyPB)]
1085#[derive(Clone, PartialEq, ::prost::Message)]
1086pub struct ExchangeNode {
1087 #[prost(message, optional, tag = "1")]
1088 pub strategy: ::core::option::Option<DispatchStrategy>,
1089}
1090#[derive(prost_helpers::AnyPB)]
1095#[derive(Clone, PartialEq, ::prost::Message)]
1096pub struct StreamScanNode {
1097 #[prost(uint32, tag = "1", wrapper = "crate::id::TableId")]
1098 pub table_id: crate::id::TableId,
1099 #[prost(int32, repeated, tag = "2")]
1103 pub upstream_column_ids: ::prost::alloc::vec::Vec<i32>,
1104 #[prost(uint32, repeated, tag = "3")]
1108 pub output_indices: ::prost::alloc::vec::Vec<u32>,
1109 #[prost(enumeration = "StreamScanType", tag = "4")]
1114 pub stream_scan_type: i32,
1115 #[prost(message, optional, tag = "5")]
1117 pub state_table: ::core::option::Option<super::catalog::Table>,
1118 #[prost(message, optional, tag = "7")]
1121 pub table_desc: ::core::option::Option<super::plan_common::StorageTableDesc>,
1122 #[prost(uint32, optional, tag = "8")]
1124 pub rate_limit: ::core::option::Option<u32>,
1125 #[deprecated]
1127 #[prost(uint32, tag = "9")]
1128 pub snapshot_read_barrier_interval: u32,
1129 #[prost(message, optional, tag = "10")]
1132 pub arrangement_table: ::core::option::Option<super::catalog::Table>,
1133 #[prost(uint64, optional, tag = "11")]
1134 pub snapshot_backfill_epoch: ::core::option::Option<u64>,
1135}
1136#[derive(prost_helpers::AnyPB)]
1138#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1139pub struct StreamCdcScanOptions {
1140 #[prost(bool, tag = "1")]
1142 pub disable_backfill: bool,
1143 #[prost(uint32, tag = "2")]
1144 pub snapshot_barrier_interval: u32,
1145 #[prost(uint32, tag = "3")]
1146 pub snapshot_batch_size: u32,
1147 #[prost(uint32, tag = "4")]
1148 pub backfill_parallelism: u32,
1149 #[prost(uint64, tag = "5")]
1150 pub backfill_num_rows_per_split: u64,
1151 #[prost(bool, tag = "6")]
1152 pub backfill_as_even_splits: bool,
1153 #[prost(uint32, tag = "7")]
1154 pub backfill_split_pk_column_index: u32,
1155}
1156#[derive(prost_helpers::AnyPB)]
1157#[derive(Clone, PartialEq, ::prost::Message)]
1158pub struct StreamCdcScanNode {
1159 #[prost(uint32, tag = "1", wrapper = "crate::id::TableId")]
1160 pub table_id: crate::id::TableId,
1161 #[prost(int32, repeated, tag = "2")]
1164 pub upstream_column_ids: ::prost::alloc::vec::Vec<i32>,
1165 #[prost(uint32, repeated, tag = "3")]
1167 pub output_indices: ::prost::alloc::vec::Vec<u32>,
1168 #[prost(message, optional, tag = "4")]
1170 pub state_table: ::core::option::Option<super::catalog::Table>,
1171 #[prost(message, optional, tag = "5")]
1173 pub cdc_table_desc: ::core::option::Option<super::plan_common::ExternalTableDesc>,
1174 #[prost(uint32, optional, tag = "6")]
1176 pub rate_limit: ::core::option::Option<u32>,
1177 #[prost(bool, tag = "7")]
1180 pub disable_backfill: bool,
1181 #[prost(message, optional, tag = "8")]
1182 pub options: ::core::option::Option<StreamCdcScanOptions>,
1183}
1184#[derive(prost_helpers::AnyPB)]
1188#[derive(Clone, PartialEq, ::prost::Message)]
1189pub struct BatchPlanNode {
1190 #[prost(message, optional, tag = "1")]
1191 pub table_desc: ::core::option::Option<super::plan_common::StorageTableDesc>,
1192 #[prost(int32, repeated, tag = "2")]
1193 pub column_ids: ::prost::alloc::vec::Vec<i32>,
1194}
1195#[derive(prost_helpers::AnyPB)]
1196#[derive(Clone, PartialEq, ::prost::Message)]
1197pub struct ArrangementInfo {
1198 #[prost(message, repeated, tag = "1")]
1201 pub arrange_key_orders: ::prost::alloc::vec::Vec<super::common::ColumnOrder>,
1202 #[prost(message, repeated, tag = "2")]
1204 pub column_descs: ::prost::alloc::vec::Vec<super::plan_common::ColumnDesc>,
1205 #[prost(message, optional, tag = "4")]
1207 pub table_desc: ::core::option::Option<super::plan_common::StorageTableDesc>,
1208 #[prost(uint32, repeated, tag = "5")]
1210 pub output_col_idx: ::prost::alloc::vec::Vec<u32>,
1211}
1212#[derive(prost_helpers::AnyPB)]
1215#[derive(Clone, PartialEq, ::prost::Message)]
1216pub struct ArrangeNode {
1217 #[prost(message, optional, tag = "1")]
1219 pub table_info: ::core::option::Option<ArrangementInfo>,
1220 #[prost(uint32, repeated, tag = "2")]
1222 pub distribution_key: ::prost::alloc::vec::Vec<u32>,
1223 #[prost(message, optional, tag = "3")]
1225 pub table: ::core::option::Option<super::catalog::Table>,
1226}
1227#[derive(prost_helpers::AnyPB)]
1229#[derive(Clone, PartialEq, ::prost::Message)]
1230pub struct LookupNode {
1231 #[prost(int32, repeated, tag = "1")]
1233 pub arrange_key: ::prost::alloc::vec::Vec<i32>,
1234 #[prost(int32, repeated, tag = "2")]
1236 pub stream_key: ::prost::alloc::vec::Vec<i32>,
1237 #[prost(bool, tag = "3")]
1239 pub use_current_epoch: bool,
1240 #[prost(int32, repeated, tag = "4")]
1244 pub column_mapping: ::prost::alloc::vec::Vec<i32>,
1245 #[prost(message, optional, tag = "7")]
1247 pub arrangement_table_info: ::core::option::Option<ArrangementInfo>,
1248 #[prost(oneof = "lookup_node::ArrangementTableId", tags = "5, 6")]
1249 pub arrangement_table_id: ::core::option::Option<lookup_node::ArrangementTableId>,
1250}
1251pub mod lookup_node {
1253 #[derive(prost_helpers::AnyPB)]
1254 #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
1255 pub enum ArrangementTableId {
1256 #[prost(uint32, tag = "5")]
1258 TableId(u32),
1259 #[prost(uint32, tag = "6")]
1261 IndexId(u32),
1262 }
1263}
1264#[derive(prost_helpers::AnyPB)]
1266#[derive(Clone, PartialEq, ::prost::Message)]
1267pub struct WatermarkFilterNode {
1268 #[prost(message, repeated, tag = "1")]
1270 pub watermark_descs: ::prost::alloc::vec::Vec<super::catalog::WatermarkDesc>,
1271 #[prost(message, repeated, tag = "2")]
1273 pub tables: ::prost::alloc::vec::Vec<super::catalog::Table>,
1274}
1275#[derive(prost_helpers::AnyPB)]
1277#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1278pub struct UnionNode {}
1279#[derive(prost_helpers::AnyPB)]
1281#[derive(Clone, PartialEq, ::prost::Message)]
1282pub struct LookupUnionNode {
1283 #[prost(uint32, repeated, tag = "1")]
1284 pub order: ::prost::alloc::vec::Vec<u32>,
1285}
1286#[derive(prost_helpers::AnyPB)]
1287#[derive(Clone, PartialEq, ::prost::Message)]
1288pub struct ExpandNode {
1289 #[prost(message, repeated, tag = "1")]
1290 pub column_subsets: ::prost::alloc::vec::Vec<expand_node::Subset>,
1291}
1292pub mod expand_node {
1294 #[derive(prost_helpers::AnyPB)]
1295 #[derive(Clone, PartialEq, ::prost::Message)]
1296 pub struct Subset {
1297 #[prost(uint32, repeated, tag = "1")]
1298 pub column_indices: ::prost::alloc::vec::Vec<u32>,
1299 }
1300}
1301#[derive(prost_helpers::AnyPB)]
1302#[derive(Clone, PartialEq, ::prost::Message)]
1303pub struct ProjectSetNode {
1304 #[prost(message, repeated, tag = "1")]
1305 pub select_list: ::prost::alloc::vec::Vec<super::expr::ProjectSetSelectItem>,
1306 #[prost(uint32, repeated, tag = "2")]
1310 pub watermark_input_cols: ::prost::alloc::vec::Vec<u32>,
1311 #[prost(uint32, repeated, tag = "3")]
1312 pub watermark_expr_indices: ::prost::alloc::vec::Vec<u32>,
1313 #[prost(uint32, repeated, tag = "4")]
1314 pub nondecreasing_exprs: ::prost::alloc::vec::Vec<u32>,
1315}
1316#[derive(prost_helpers::AnyPB)]
1318#[derive(Clone, PartialEq, ::prost::Message)]
1319pub struct SortNode {
1320 #[prost(message, optional, tag = "1")]
1322 pub state_table: ::core::option::Option<super::catalog::Table>,
1323 #[prost(uint32, tag = "2")]
1325 pub sort_column_index: u32,
1326}
1327#[derive(prost_helpers::AnyPB)]
1329#[derive(Clone, PartialEq, ::prost::Message)]
1330pub struct DmlNode {
1331 #[prost(uint32, tag = "1", wrapper = "crate::id::TableId")]
1333 pub table_id: crate::id::TableId,
1334 #[prost(uint64, tag = "3")]
1336 pub table_version_id: u64,
1337 #[prost(message, repeated, tag = "2")]
1339 pub column_descs: ::prost::alloc::vec::Vec<super::plan_common::ColumnDesc>,
1340 #[prost(uint32, optional, tag = "4")]
1341 pub rate_limit: ::core::option::Option<u32>,
1342}
1343#[derive(prost_helpers::AnyPB)]
1344#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1345pub struct RowIdGenNode {
1346 #[prost(uint64, tag = "1")]
1347 pub row_id_index: u64,
1348}
1349#[derive(prost_helpers::AnyPB)]
1350#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1351pub struct NowModeUpdateCurrent {}
1352#[derive(prost_helpers::AnyPB)]
1353#[derive(Clone, PartialEq, ::prost::Message)]
1354pub struct NowModeGenerateSeries {
1355 #[prost(message, optional, tag = "1")]
1356 pub start_timestamp: ::core::option::Option<super::data::Datum>,
1357 #[prost(message, optional, tag = "2")]
1358 pub interval: ::core::option::Option<super::data::Datum>,
1359}
1360#[derive(prost_helpers::AnyPB)]
1361#[derive(Clone, PartialEq, ::prost::Message)]
1362pub struct NowNode {
1363 #[prost(message, optional, tag = "1")]
1365 pub state_table: ::core::option::Option<super::catalog::Table>,
1366 #[prost(oneof = "now_node::Mode", tags = "101, 102")]
1367 pub mode: ::core::option::Option<now_node::Mode>,
1368}
1369pub mod now_node {
1371 #[derive(prost_helpers::AnyPB)]
1372 #[derive(Clone, PartialEq, ::prost::Oneof)]
1373 pub enum Mode {
1374 #[prost(message, tag = "101")]
1375 UpdateCurrent(super::NowModeUpdateCurrent),
1376 #[prost(message, tag = "102")]
1377 GenerateSeries(super::NowModeGenerateSeries),
1378 }
1379}
1380#[derive(prost_helpers::AnyPB)]
1381#[derive(Clone, PartialEq, ::prost::Message)]
1382pub struct ValuesNode {
1383 #[prost(message, repeated, tag = "1")]
1384 pub tuples: ::prost::alloc::vec::Vec<values_node::ExprTuple>,
1385 #[prost(message, repeated, tag = "2")]
1386 pub fields: ::prost::alloc::vec::Vec<super::plan_common::Field>,
1387}
1388pub mod values_node {
1390 #[derive(prost_helpers::AnyPB)]
1391 #[derive(Clone, PartialEq, ::prost::Message)]
1392 pub struct ExprTuple {
1393 #[prost(message, repeated, tag = "1")]
1394 pub cells: ::prost::alloc::vec::Vec<super::super::expr::ExprNode>,
1395 }
1396}
1397#[derive(prost_helpers::AnyPB)]
1398#[derive(Clone, PartialEq, ::prost::Message)]
1399pub struct DedupNode {
1400 #[prost(message, optional, tag = "1")]
1401 pub state_table: ::core::option::Option<super::catalog::Table>,
1402 #[prost(uint32, repeated, tag = "2")]
1403 pub dedup_column_indices: ::prost::alloc::vec::Vec<u32>,
1404}
1405#[derive(prost_helpers::AnyPB)]
1406#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1407pub struct NoOpNode {}
1408#[derive(prost_helpers::AnyPB)]
1409#[derive(Clone, PartialEq, ::prost::Message)]
1410pub struct EowcOverWindowNode {
1411 #[prost(message, repeated, tag = "1")]
1412 pub calls: ::prost::alloc::vec::Vec<super::expr::WindowFunction>,
1413 #[prost(uint32, repeated, tag = "2")]
1414 pub partition_by: ::prost::alloc::vec::Vec<u32>,
1415 #[prost(message, repeated, tag = "3")]
1417 pub order_by: ::prost::alloc::vec::Vec<super::common::ColumnOrder>,
1418 #[prost(message, optional, tag = "4")]
1419 pub state_table: ::core::option::Option<super::catalog::Table>,
1420}
1421#[derive(prost_helpers::AnyPB)]
1422#[derive(Clone, PartialEq, ::prost::Message)]
1423pub struct OverWindowNode {
1424 #[prost(message, repeated, tag = "1")]
1425 pub calls: ::prost::alloc::vec::Vec<super::expr::WindowFunction>,
1426 #[prost(uint32, repeated, tag = "2")]
1427 pub partition_by: ::prost::alloc::vec::Vec<u32>,
1428 #[prost(message, repeated, tag = "3")]
1429 pub order_by: ::prost::alloc::vec::Vec<super::common::ColumnOrder>,
1430 #[prost(message, optional, tag = "4")]
1431 pub state_table: ::core::option::Option<super::catalog::Table>,
1432 #[prost(enumeration = "OverWindowCachePolicy", tag = "5")]
1433 pub cache_policy: i32,
1434}
1435#[derive(prost_helpers::AnyPB)]
1436#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1437pub struct LocalApproxPercentileNode {
1438 #[prost(double, tag = "1")]
1439 pub base: f64,
1440 #[prost(uint32, tag = "2")]
1441 pub percentile_index: u32,
1442}
1443#[derive(prost_helpers::AnyPB)]
1444#[derive(Clone, PartialEq, ::prost::Message)]
1445pub struct GlobalApproxPercentileNode {
1446 #[prost(double, tag = "1")]
1447 pub base: f64,
1448 #[prost(double, tag = "2")]
1449 pub quantile: f64,
1450 #[prost(message, optional, tag = "3")]
1451 pub bucket_state_table: ::core::option::Option<super::catalog::Table>,
1452 #[prost(message, optional, tag = "4")]
1453 pub count_state_table: ::core::option::Option<super::catalog::Table>,
1454}
1455#[derive(prost_helpers::AnyPB)]
1456#[derive(Clone, PartialEq, ::prost::Message)]
1457pub struct RowMergeNode {
1458 #[prost(message, optional, tag = "1")]
1459 pub lhs_mapping: ::core::option::Option<super::catalog::ColIndexMapping>,
1460 #[prost(message, optional, tag = "2")]
1461 pub rhs_mapping: ::core::option::Option<super::catalog::ColIndexMapping>,
1462}
1463#[derive(prost_helpers::AnyPB)]
1464#[derive(Clone, PartialEq, ::prost::Message)]
1465pub struct SyncLogStoreNode {
1466 #[prost(message, optional, tag = "1")]
1467 pub log_store_table: ::core::option::Option<super::catalog::Table>,
1468 #[prost(uint32, tag = "2")]
1469 pub pause_duration_ms: u32,
1470 #[prost(uint32, tag = "3")]
1471 pub buffer_size: u32,
1472 #[prost(bool, tag = "4")]
1473 pub aligned: bool,
1474}
1475#[derive(prost_helpers::AnyPB)]
1476#[derive(Clone, PartialEq, ::prost::Message)]
1477pub struct MaterializedExprsNode {
1478 #[prost(message, repeated, tag = "1")]
1479 pub exprs: ::prost::alloc::vec::Vec<super::expr::ExprNode>,
1480 #[prost(message, optional, tag = "2")]
1481 pub state_table: ::core::option::Option<super::catalog::Table>,
1482 #[prost(uint32, optional, tag = "3")]
1483 pub state_clean_col_idx: ::core::option::Option<u32>,
1484}
1485#[derive(prost_helpers::AnyPB)]
1486#[derive(Clone, PartialEq, ::prost::Message)]
1487pub struct VectorIndexWriteNode {
1488 #[prost(message, optional, tag = "1")]
1489 pub table: ::core::option::Option<super::catalog::Table>,
1490}
1491#[derive(prost_helpers::AnyPB)]
1492#[derive(Clone, PartialEq, ::prost::Message)]
1493pub struct VectorIndexLookupJoinNode {
1494 #[prost(message, optional, tag = "1")]
1495 pub reader_desc: ::core::option::Option<super::plan_common::VectorIndexReaderDesc>,
1496 #[prost(uint32, tag = "2")]
1497 pub vector_column_idx: u32,
1498}
1499#[derive(prost_helpers::AnyPB)]
1500#[derive(Clone, PartialEq, ::prost::Message)]
1501pub struct UpstreamSinkUnionNode {
1502 #[prost(message, repeated, tag = "1")]
1505 pub init_upstreams: ::prost::alloc::vec::Vec<UpstreamSinkInfo>,
1506}
1507#[derive(prost_helpers::AnyPB)]
1508#[derive(Clone, PartialEq, ::prost::Message)]
1509pub struct LocalityProviderNode {
1510 #[prost(uint32, repeated, tag = "1")]
1512 pub locality_columns: ::prost::alloc::vec::Vec<u32>,
1513 #[prost(message, optional, tag = "2")]
1515 pub state_table: ::core::option::Option<super::catalog::Table>,
1516 #[prost(message, optional, tag = "3")]
1518 pub progress_table: ::core::option::Option<super::catalog::Table>,
1519}
1520#[derive(prost_helpers::AnyPB)]
1521#[derive(Clone, PartialEq, ::prost::Message)]
1522pub struct EowcGapFillNode {
1523 #[prost(uint32, tag = "1")]
1524 pub time_column_index: u32,
1525 #[prost(message, optional, tag = "2")]
1526 pub interval: ::core::option::Option<super::expr::ExprNode>,
1527 #[prost(uint32, repeated, tag = "3")]
1528 pub fill_columns: ::prost::alloc::vec::Vec<u32>,
1529 #[prost(string, repeated, tag = "4")]
1530 pub fill_strategies: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1531 #[prost(message, optional, tag = "5")]
1532 pub buffer_table: ::core::option::Option<super::catalog::Table>,
1533 #[prost(message, optional, tag = "6")]
1534 pub prev_row_table: ::core::option::Option<super::catalog::Table>,
1535}
1536#[derive(prost_helpers::AnyPB)]
1537#[derive(Clone, PartialEq, ::prost::Message)]
1538pub struct GapFillNode {
1539 #[prost(uint32, tag = "1")]
1540 pub time_column_index: u32,
1541 #[prost(message, optional, tag = "2")]
1542 pub interval: ::core::option::Option<super::expr::ExprNode>,
1543 #[prost(uint32, repeated, tag = "3")]
1544 pub fill_columns: ::prost::alloc::vec::Vec<u32>,
1545 #[prost(string, repeated, tag = "4")]
1546 pub fill_strategies: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1547 #[prost(message, optional, tag = "5")]
1548 pub state_table: ::core::option::Option<super::catalog::Table>,
1549}
1550#[derive(prost_helpers::AnyPB)]
1551#[derive(Clone, PartialEq, ::prost::Message)]
1552pub struct StreamNode {
1553 #[prost(uint64, tag = "1")]
1556 pub operator_id: u64,
1557 #[prost(message, repeated, tag = "3")]
1559 pub input: ::prost::alloc::vec::Vec<StreamNode>,
1560 #[prost(uint32, repeated, tag = "2")]
1561 pub stream_key: ::prost::alloc::vec::Vec<u32>,
1562 #[prost(enumeration = "stream_node::StreamKind", tag = "24")]
1563 pub stream_kind: i32,
1564 #[prost(string, tag = "18")]
1565 pub identity: ::prost::alloc::string::String,
1566 #[prost(message, repeated, tag = "19")]
1568 pub fields: ::prost::alloc::vec::Vec<super::plan_common::Field>,
1569 #[prost(
1570 oneof = "stream_node::NodeBody",
1571 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"
1572 )]
1573 pub node_body: ::core::option::Option<stream_node::NodeBody>,
1574}
1575pub mod stream_node {
1577 #[derive(prost_helpers::AnyPB)]
1580 #[derive(
1581 Clone,
1582 Copy,
1583 Debug,
1584 PartialEq,
1585 Eq,
1586 Hash,
1587 PartialOrd,
1588 Ord,
1589 ::prost::Enumeration
1590 )]
1591 #[repr(i32)]
1592 pub enum StreamKind {
1593 Retract = 0,
1595 AppendOnly = 1,
1596 Upsert = 2,
1597 }
1598 impl StreamKind {
1599 pub fn as_str_name(&self) -> &'static str {
1604 match self {
1605 Self::Retract => "STREAM_KIND_RETRACT",
1606 Self::AppendOnly => "STREAM_KIND_APPEND_ONLY",
1607 Self::Upsert => "STREAM_KIND_UPSERT",
1608 }
1609 }
1610 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1612 match value {
1613 "STREAM_KIND_RETRACT" => Some(Self::Retract),
1614 "STREAM_KIND_APPEND_ONLY" => Some(Self::AppendOnly),
1615 "STREAM_KIND_UPSERT" => Some(Self::Upsert),
1616 _ => None,
1617 }
1618 }
1619 }
1620 #[derive(prost_helpers::AnyPB)]
1621 #[derive(::enum_as_inner::EnumAsInner, ::strum::Display, ::strum::EnumDiscriminants)]
1622 #[strum_discriminants(derive(::strum::Display, Hash))]
1623 #[derive(Clone, PartialEq, ::prost::Oneof)]
1624 pub enum NodeBody {
1625 #[prost(message, tag = "100")]
1626 Source(::prost::alloc::boxed::Box<super::SourceNode>),
1627 #[prost(message, tag = "101")]
1628 Project(::prost::alloc::boxed::Box<super::ProjectNode>),
1629 #[prost(message, tag = "102")]
1630 Filter(::prost::alloc::boxed::Box<super::FilterNode>),
1631 #[prost(message, tag = "103")]
1632 Materialize(::prost::alloc::boxed::Box<super::MaterializeNode>),
1633 #[prost(message, tag = "104")]
1634 StatelessSimpleAgg(::prost::alloc::boxed::Box<super::SimpleAggNode>),
1635 #[prost(message, tag = "105")]
1636 SimpleAgg(::prost::alloc::boxed::Box<super::SimpleAggNode>),
1637 #[prost(message, tag = "106")]
1638 HashAgg(::prost::alloc::boxed::Box<super::HashAggNode>),
1639 #[prost(message, tag = "107")]
1640 AppendOnlyTopN(::prost::alloc::boxed::Box<super::TopNNode>),
1641 #[prost(message, tag = "108")]
1642 HashJoin(::prost::alloc::boxed::Box<super::HashJoinNode>),
1643 #[prost(message, tag = "109")]
1644 TopN(::prost::alloc::boxed::Box<super::TopNNode>),
1645 #[prost(message, tag = "110")]
1646 HopWindow(::prost::alloc::boxed::Box<super::HopWindowNode>),
1647 #[prost(message, tag = "111")]
1648 Merge(::prost::alloc::boxed::Box<super::MergeNode>),
1649 #[prost(message, tag = "112")]
1650 Exchange(::prost::alloc::boxed::Box<super::ExchangeNode>),
1651 #[prost(message, tag = "113")]
1652 StreamScan(::prost::alloc::boxed::Box<super::StreamScanNode>),
1653 #[prost(message, tag = "114")]
1654 BatchPlan(::prost::alloc::boxed::Box<super::BatchPlanNode>),
1655 #[prost(message, tag = "115")]
1656 Lookup(::prost::alloc::boxed::Box<super::LookupNode>),
1657 #[prost(message, tag = "116")]
1658 Arrange(::prost::alloc::boxed::Box<super::ArrangeNode>),
1659 #[prost(message, tag = "117")]
1660 LookupUnion(::prost::alloc::boxed::Box<super::LookupUnionNode>),
1661 #[prost(message, tag = "118")]
1662 Union(super::UnionNode),
1663 #[prost(message, tag = "119")]
1664 DeltaIndexJoin(::prost::alloc::boxed::Box<super::DeltaIndexJoinNode>),
1665 #[prost(message, tag = "120")]
1666 Sink(::prost::alloc::boxed::Box<super::SinkNode>),
1667 #[prost(message, tag = "121")]
1668 Expand(::prost::alloc::boxed::Box<super::ExpandNode>),
1669 #[prost(message, tag = "122")]
1670 DynamicFilter(::prost::alloc::boxed::Box<super::DynamicFilterNode>),
1671 #[prost(message, tag = "123")]
1672 ProjectSet(::prost::alloc::boxed::Box<super::ProjectSetNode>),
1673 #[prost(message, tag = "124")]
1674 GroupTopN(::prost::alloc::boxed::Box<super::GroupTopNNode>),
1675 #[prost(message, tag = "125")]
1676 Sort(::prost::alloc::boxed::Box<super::SortNode>),
1677 #[prost(message, tag = "126")]
1678 WatermarkFilter(::prost::alloc::boxed::Box<super::WatermarkFilterNode>),
1679 #[prost(message, tag = "127")]
1680 Dml(::prost::alloc::boxed::Box<super::DmlNode>),
1681 #[prost(message, tag = "128")]
1682 RowIdGen(::prost::alloc::boxed::Box<super::RowIdGenNode>),
1683 #[prost(message, tag = "129")]
1684 Now(::prost::alloc::boxed::Box<super::NowNode>),
1685 #[prost(message, tag = "130")]
1686 AppendOnlyGroupTopN(::prost::alloc::boxed::Box<super::GroupTopNNode>),
1687 #[prost(message, tag = "131")]
1688 TemporalJoin(::prost::alloc::boxed::Box<super::TemporalJoinNode>),
1689 #[prost(message, tag = "132")]
1690 BarrierRecv(::prost::alloc::boxed::Box<super::BarrierRecvNode>),
1691 #[prost(message, tag = "133")]
1692 Values(::prost::alloc::boxed::Box<super::ValuesNode>),
1693 #[prost(message, tag = "134")]
1694 AppendOnlyDedup(::prost::alloc::boxed::Box<super::DedupNode>),
1695 #[prost(message, tag = "135")]
1696 NoOp(super::NoOpNode),
1697 #[prost(message, tag = "136")]
1698 EowcOverWindow(::prost::alloc::boxed::Box<super::EowcOverWindowNode>),
1699 #[prost(message, tag = "137")]
1700 OverWindow(::prost::alloc::boxed::Box<super::OverWindowNode>),
1701 #[prost(message, tag = "138")]
1702 StreamFsFetch(::prost::alloc::boxed::Box<super::StreamFsFetchNode>),
1703 #[prost(message, tag = "139")]
1704 StreamCdcScan(::prost::alloc::boxed::Box<super::StreamCdcScanNode>),
1705 #[prost(message, tag = "140")]
1706 CdcFilter(::prost::alloc::boxed::Box<super::CdcFilterNode>),
1707 #[prost(message, tag = "142")]
1708 SourceBackfill(::prost::alloc::boxed::Box<super::SourceBackfillNode>),
1709 #[prost(message, tag = "143")]
1710 Changelog(::prost::alloc::boxed::Box<super::ChangeLogNode>),
1711 #[prost(message, tag = "144")]
1712 LocalApproxPercentile(
1713 ::prost::alloc::boxed::Box<super::LocalApproxPercentileNode>,
1714 ),
1715 #[prost(message, tag = "145")]
1716 GlobalApproxPercentile(
1717 ::prost::alloc::boxed::Box<super::GlobalApproxPercentileNode>,
1718 ),
1719 #[prost(message, tag = "146")]
1720 RowMerge(::prost::alloc::boxed::Box<super::RowMergeNode>),
1721 #[prost(message, tag = "147")]
1722 AsOfJoin(::prost::alloc::boxed::Box<super::AsOfJoinNode>),
1723 #[prost(message, tag = "148")]
1724 SyncLogStore(::prost::alloc::boxed::Box<super::SyncLogStoreNode>),
1725 #[prost(message, tag = "149")]
1726 MaterializedExprs(::prost::alloc::boxed::Box<super::MaterializedExprsNode>),
1727 #[prost(message, tag = "150")]
1728 VectorIndexWrite(::prost::alloc::boxed::Box<super::VectorIndexWriteNode>),
1729 #[prost(message, tag = "151")]
1730 UpstreamSinkUnion(::prost::alloc::boxed::Box<super::UpstreamSinkUnionNode>),
1731 #[prost(message, tag = "152")]
1732 LocalityProvider(::prost::alloc::boxed::Box<super::LocalityProviderNode>),
1733 #[prost(message, tag = "153")]
1734 EowcGapFill(::prost::alloc::boxed::Box<super::EowcGapFillNode>),
1735 #[prost(message, tag = "154")]
1736 GapFill(::prost::alloc::boxed::Box<super::GapFillNode>),
1737 #[prost(message, tag = "155")]
1738 VectorIndexLookupJoin(
1739 ::prost::alloc::boxed::Box<super::VectorIndexLookupJoinNode>,
1740 ),
1741 }
1742}
1743#[derive(prost_helpers::AnyPB)]
1756#[derive(Clone, PartialEq, ::prost::Message)]
1757pub struct DispatchOutputMapping {
1758 #[prost(uint32, repeated, tag = "1")]
1760 pub indices: ::prost::alloc::vec::Vec<u32>,
1761 #[prost(message, repeated, tag = "2")]
1766 pub types: ::prost::alloc::vec::Vec<dispatch_output_mapping::TypePair>,
1767}
1768pub mod dispatch_output_mapping {
1770 #[derive(prost_helpers::AnyPB)]
1771 #[derive(Clone, PartialEq, ::prost::Message)]
1772 pub struct TypePair {
1773 #[prost(message, optional, tag = "1")]
1774 pub upstream: ::core::option::Option<super::super::data::DataType>,
1775 #[prost(message, optional, tag = "2")]
1776 pub downstream: ::core::option::Option<super::super::data::DataType>,
1777 }
1778}
1779#[derive(prost_helpers::AnyPB)]
1782#[derive(Clone, PartialEq, ::prost::Message)]
1783pub struct DispatchStrategy {
1784 #[prost(enumeration = "DispatcherType", tag = "1")]
1785 pub r#type: i32,
1786 #[prost(uint32, repeated, tag = "2")]
1787 pub dist_key_indices: ::prost::alloc::vec::Vec<u32>,
1788 #[prost(message, optional, tag = "3")]
1789 pub output_mapping: ::core::option::Option<DispatchOutputMapping>,
1790}
1791#[derive(prost_helpers::AnyPB)]
1794#[derive(Clone, PartialEq, ::prost::Message)]
1795pub struct Dispatcher {
1796 #[prost(enumeration = "DispatcherType", tag = "1")]
1797 pub r#type: i32,
1798 #[prost(uint32, repeated, tag = "2")]
1801 pub dist_key_indices: ::prost::alloc::vec::Vec<u32>,
1802 #[prost(message, optional, tag = "6")]
1804 pub output_mapping: ::core::option::Option<DispatchOutputMapping>,
1805 #[prost(message, optional, tag = "3")]
1808 pub hash_mapping: ::core::option::Option<ActorMapping>,
1809 #[prost(uint64, tag = "4")]
1812 pub dispatcher_id: u64,
1813 #[prost(uint32, repeated, tag = "5", wrapper = "crate::id::ActorId")]
1815 pub downstream_actor_id: ::prost::alloc::vec::Vec<crate::id::ActorId>,
1816}
1817#[derive(prost_helpers::AnyPB)]
1819#[derive(Clone, PartialEq, ::prost::Message)]
1820pub struct StreamActor {
1821 #[prost(uint32, tag = "1", wrapper = "crate::id::ActorId")]
1822 pub actor_id: crate::id::ActorId,
1823 #[prost(uint32, tag = "2", wrapper = "crate::id::FragmentId")]
1824 pub fragment_id: crate::id::FragmentId,
1825 #[prost(message, repeated, tag = "4")]
1826 pub dispatcher: ::prost::alloc::vec::Vec<Dispatcher>,
1827 #[prost(message, optional, tag = "8")]
1830 pub vnode_bitmap: ::core::option::Option<super::common::Buffer>,
1831 #[prost(string, tag = "9")]
1833 pub mview_definition: ::prost::alloc::string::String,
1834 #[prost(message, optional, tag = "10")]
1836 pub expr_context: ::core::option::Option<super::plan_common::ExprContext>,
1837 #[prost(string, tag = "11")]
1839 pub config_override: ::prost::alloc::string::String,
1840}
1841#[derive(prost_helpers::AnyPB)]
1843#[derive(Clone, PartialEq, ::prost::Message)]
1844pub struct StreamContext {
1845 #[prost(string, tag = "1")]
1847 pub timezone: ::prost::alloc::string::String,
1848 #[prost(string, tag = "2")]
1850 pub config_override: ::prost::alloc::string::String,
1851}
1852#[derive(prost_helpers::AnyPB)]
1853#[derive(Clone, PartialEq, ::prost::Message)]
1854pub struct BackfillOrder {
1855 #[prost(map = "uint32, message", tag = "1")]
1856 pub order: ::std::collections::HashMap<u32, super::common::Uint32Vector>,
1857}
1858#[derive(prost_helpers::AnyPB)]
1863#[derive(Clone, PartialEq, ::prost::Message)]
1864pub struct StreamFragmentGraph {
1865 #[prost(map = "uint32, message", tag = "1", wrapper = "crate::id::FragmentId")]
1867 pub fragments: ::std::collections::HashMap<
1868 crate::id::FragmentId,
1869 stream_fragment_graph::StreamFragment,
1870 >,
1871 #[prost(message, repeated, tag = "2")]
1873 pub edges: ::prost::alloc::vec::Vec<stream_fragment_graph::StreamFragmentEdge>,
1874 #[prost(uint32, repeated, tag = "3", wrapper = "crate::id::TableId")]
1875 pub dependent_table_ids: ::prost::alloc::vec::Vec<crate::id::TableId>,
1876 #[prost(uint32, tag = "4")]
1877 pub table_ids_cnt: u32,
1878 #[prost(message, optional, tag = "5")]
1879 pub ctx: ::core::option::Option<StreamContext>,
1880 #[prost(message, optional, tag = "6")]
1882 pub parallelism: ::core::option::Option<stream_fragment_graph::Parallelism>,
1883 #[prost(uint32, tag = "7")]
1893 pub max_parallelism: u32,
1894 #[prost(message, optional, tag = "8")]
1896 pub backfill_order: ::core::option::Option<BackfillOrder>,
1897}
1898pub mod stream_fragment_graph {
1900 #[derive(prost_helpers::AnyPB)]
1901 #[derive(Clone, PartialEq, ::prost::Message)]
1902 pub struct StreamFragment {
1903 #[prost(uint32, tag = "1", wrapper = "crate::id::FragmentId")]
1905 pub fragment_id: crate::id::FragmentId,
1906 #[prost(message, optional, tag = "2")]
1908 pub node: ::core::option::Option<super::StreamNode>,
1909 #[prost(uint32, tag = "3")]
1911 pub fragment_type_mask: u32,
1912 #[prost(bool, tag = "4")]
1916 pub requires_singleton: bool,
1917 }
1918 #[derive(prost_helpers::AnyPB)]
1919 #[derive(Clone, PartialEq, ::prost::Message)]
1920 pub struct StreamFragmentEdge {
1921 #[prost(message, optional, tag = "1")]
1923 pub dispatch_strategy: ::core::option::Option<super::DispatchStrategy>,
1924 #[prost(uint64, tag = "3")]
1928 pub link_id: u64,
1929 #[prost(uint32, tag = "4", wrapper = "crate::id::FragmentId")]
1930 pub upstream_id: crate::id::FragmentId,
1931 #[prost(uint32, tag = "5", wrapper = "crate::id::FragmentId")]
1932 pub downstream_id: crate::id::FragmentId,
1933 }
1934 #[derive(prost_helpers::AnyPB)]
1935 #[derive(Clone, Copy, PartialEq, ::prost::Message)]
1936 pub struct Parallelism {
1937 #[prost(uint64, tag = "1")]
1938 pub parallelism: u64,
1939 }
1940}
1941#[derive(prost_helpers::AnyPB)]
1942#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1943#[repr(i32)]
1944pub enum SinkLogStoreType {
1945 Unspecified = 0,
1947 KvLogStore = 1,
1948 InMemoryLogStore = 2,
1949}
1950impl SinkLogStoreType {
1951 pub fn as_str_name(&self) -> &'static str {
1956 match self {
1957 Self::Unspecified => "SINK_LOG_STORE_TYPE_UNSPECIFIED",
1958 Self::KvLogStore => "SINK_LOG_STORE_TYPE_KV_LOG_STORE",
1959 Self::InMemoryLogStore => "SINK_LOG_STORE_TYPE_IN_MEMORY_LOG_STORE",
1960 }
1961 }
1962 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1964 match value {
1965 "SINK_LOG_STORE_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
1966 "SINK_LOG_STORE_TYPE_KV_LOG_STORE" => Some(Self::KvLogStore),
1967 "SINK_LOG_STORE_TYPE_IN_MEMORY_LOG_STORE" => Some(Self::InMemoryLogStore),
1968 _ => None,
1969 }
1970 }
1971}
1972#[derive(prost_helpers::AnyPB)]
1973#[derive(prost_helpers::Version)]
1974#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1975#[repr(i32)]
1976pub enum AggNodeVersion {
1977 Unspecified = 0,
1978 Issue12140 = 1,
1980 Issue13465 = 2,
1982}
1983impl AggNodeVersion {
1984 pub fn as_str_name(&self) -> &'static str {
1989 match self {
1990 Self::Unspecified => "AGG_NODE_VERSION_UNSPECIFIED",
1991 Self::Issue12140 => "AGG_NODE_VERSION_ISSUE_12140",
1992 Self::Issue13465 => "AGG_NODE_VERSION_ISSUE_13465",
1993 }
1994 }
1995 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1997 match value {
1998 "AGG_NODE_VERSION_UNSPECIFIED" => Some(Self::Unspecified),
1999 "AGG_NODE_VERSION_ISSUE_12140" => Some(Self::Issue12140),
2000 "AGG_NODE_VERSION_ISSUE_13465" => Some(Self::Issue13465),
2001 _ => None,
2002 }
2003 }
2004}
2005#[derive(prost_helpers::AnyPB)]
2006#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2007#[repr(i32)]
2008pub enum JoinEncodingType {
2009 Unspecified = 0,
2010 MemoryOptimized = 1,
2011 CpuOptimized = 2,
2012}
2013impl JoinEncodingType {
2014 pub fn as_str_name(&self) -> &'static str {
2019 match self {
2020 Self::Unspecified => "UNSPECIFIED",
2021 Self::MemoryOptimized => "MEMORY_OPTIMIZED",
2022 Self::CpuOptimized => "CPU_OPTIMIZED",
2023 }
2024 }
2025 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2027 match value {
2028 "UNSPECIFIED" => Some(Self::Unspecified),
2029 "MEMORY_OPTIMIZED" => Some(Self::MemoryOptimized),
2030 "CPU_OPTIMIZED" => Some(Self::CpuOptimized),
2031 _ => None,
2032 }
2033 }
2034}
2035#[derive(prost_helpers::AnyPB)]
2037#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2038#[repr(i32)]
2039pub enum StreamScanType {
2040 Unspecified = 0,
2041 Chain = 1,
2043 Rearrange = 2,
2045 Backfill = 3,
2047 UpstreamOnly = 4,
2049 ArrangementBackfill = 5,
2051 SnapshotBackfill = 6,
2053 CrossDbSnapshotBackfill = 7,
2055}
2056impl StreamScanType {
2057 pub fn as_str_name(&self) -> &'static str {
2062 match self {
2063 Self::Unspecified => "STREAM_SCAN_TYPE_UNSPECIFIED",
2064 Self::Chain => "STREAM_SCAN_TYPE_CHAIN",
2065 Self::Rearrange => "STREAM_SCAN_TYPE_REARRANGE",
2066 Self::Backfill => "STREAM_SCAN_TYPE_BACKFILL",
2067 Self::UpstreamOnly => "STREAM_SCAN_TYPE_UPSTREAM_ONLY",
2068 Self::ArrangementBackfill => "STREAM_SCAN_TYPE_ARRANGEMENT_BACKFILL",
2069 Self::SnapshotBackfill => "STREAM_SCAN_TYPE_SNAPSHOT_BACKFILL",
2070 Self::CrossDbSnapshotBackfill => {
2071 "STREAM_SCAN_TYPE_CROSS_DB_SNAPSHOT_BACKFILL"
2072 }
2073 }
2074 }
2075 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2077 match value {
2078 "STREAM_SCAN_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
2079 "STREAM_SCAN_TYPE_CHAIN" => Some(Self::Chain),
2080 "STREAM_SCAN_TYPE_REARRANGE" => Some(Self::Rearrange),
2081 "STREAM_SCAN_TYPE_BACKFILL" => Some(Self::Backfill),
2082 "STREAM_SCAN_TYPE_UPSTREAM_ONLY" => Some(Self::UpstreamOnly),
2083 "STREAM_SCAN_TYPE_ARRANGEMENT_BACKFILL" => Some(Self::ArrangementBackfill),
2084 "STREAM_SCAN_TYPE_SNAPSHOT_BACKFILL" => Some(Self::SnapshotBackfill),
2085 "STREAM_SCAN_TYPE_CROSS_DB_SNAPSHOT_BACKFILL" => {
2086 Some(Self::CrossDbSnapshotBackfill)
2087 }
2088 _ => None,
2089 }
2090 }
2091}
2092#[derive(prost_helpers::AnyPB)]
2093#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2094#[repr(i32)]
2095pub enum OverWindowCachePolicy {
2096 Unspecified = 0,
2097 Full = 1,
2098 Recent = 2,
2099 RecentFirstN = 3,
2100 RecentLastN = 4,
2101}
2102impl OverWindowCachePolicy {
2103 pub fn as_str_name(&self) -> &'static str {
2108 match self {
2109 Self::Unspecified => "OVER_WINDOW_CACHE_POLICY_UNSPECIFIED",
2110 Self::Full => "OVER_WINDOW_CACHE_POLICY_FULL",
2111 Self::Recent => "OVER_WINDOW_CACHE_POLICY_RECENT",
2112 Self::RecentFirstN => "OVER_WINDOW_CACHE_POLICY_RECENT_FIRST_N",
2113 Self::RecentLastN => "OVER_WINDOW_CACHE_POLICY_RECENT_LAST_N",
2114 }
2115 }
2116 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2118 match value {
2119 "OVER_WINDOW_CACHE_POLICY_UNSPECIFIED" => Some(Self::Unspecified),
2120 "OVER_WINDOW_CACHE_POLICY_FULL" => Some(Self::Full),
2121 "OVER_WINDOW_CACHE_POLICY_RECENT" => Some(Self::Recent),
2122 "OVER_WINDOW_CACHE_POLICY_RECENT_FIRST_N" => Some(Self::RecentFirstN),
2123 "OVER_WINDOW_CACHE_POLICY_RECENT_LAST_N" => Some(Self::RecentLastN),
2124 _ => None,
2125 }
2126 }
2127}
2128#[derive(prost_helpers::AnyPB)]
2129#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2130#[repr(i32)]
2131pub enum DispatcherType {
2132 Unspecified = 0,
2133 Hash = 1,
2135 Broadcast = 2,
2140 Simple = 3,
2142 NoShuffle = 4,
2146}
2147impl DispatcherType {
2148 pub fn as_str_name(&self) -> &'static str {
2153 match self {
2154 Self::Unspecified => "DISPATCHER_TYPE_UNSPECIFIED",
2155 Self::Hash => "DISPATCHER_TYPE_HASH",
2156 Self::Broadcast => "DISPATCHER_TYPE_BROADCAST",
2157 Self::Simple => "DISPATCHER_TYPE_SIMPLE",
2158 Self::NoShuffle => "DISPATCHER_TYPE_NO_SHUFFLE",
2159 }
2160 }
2161 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2163 match value {
2164 "DISPATCHER_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
2165 "DISPATCHER_TYPE_HASH" => Some(Self::Hash),
2166 "DISPATCHER_TYPE_BROADCAST" => Some(Self::Broadcast),
2167 "DISPATCHER_TYPE_SIMPLE" => Some(Self::Simple),
2168 "DISPATCHER_TYPE_NO_SHUFFLE" => Some(Self::NoShuffle),
2169 _ => None,
2170 }
2171 }
2172}