#[derive(prost_helpers::AnyPB)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Dispatchers {
#[prost(message, repeated, tag = "1")]
pub dispatchers: ::prost::alloc::vec::Vec<Dispatcher>,
}
#[derive(prost_helpers::AnyPB)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct AddMutation {
#[prost(map = "uint32, message", tag = "1")]
pub actor_dispatchers: ::std::collections::HashMap<u32, Dispatchers>,
#[prost(uint32, repeated, tag = "3")]
pub added_actors: ::prost::alloc::vec::Vec<u32>,
#[prost(map = "uint32, message", tag = "2")]
pub actor_splits: ::std::collections::HashMap<u32, super::source::ConnectorSplits>,
#[prost(bool, tag = "4")]
pub pause: bool,
#[prost(message, repeated, tag = "5")]
pub subscriptions_to_add: ::prost::alloc::vec::Vec<SubscriptionUpstreamInfo>,
}
#[derive(prost_helpers::AnyPB)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct StopMutation {
#[prost(uint32, repeated, tag = "1")]
pub actors: ::prost::alloc::vec::Vec<u32>,
}
#[derive(prost_helpers::AnyPB)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UpdateMutation {
#[prost(message, repeated, tag = "1")]
pub dispatcher_update: ::prost::alloc::vec::Vec<update_mutation::DispatcherUpdate>,
#[prost(message, repeated, tag = "2")]
pub merge_update: ::prost::alloc::vec::Vec<update_mutation::MergeUpdate>,
#[prost(map = "uint32, message", tag = "3")]
pub actor_vnode_bitmap_update: ::std::collections::HashMap<
u32,
super::common::Buffer,
>,
#[prost(uint32, repeated, tag = "4")]
pub dropped_actors: ::prost::alloc::vec::Vec<u32>,
#[prost(map = "uint32, message", tag = "5")]
pub actor_splits: ::std::collections::HashMap<u32, super::source::ConnectorSplits>,
#[prost(map = "uint32, message", tag = "6")]
pub actor_new_dispatchers: ::std::collections::HashMap<u32, Dispatchers>,
}
pub mod update_mutation {
#[derive(prost_helpers::AnyPB)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DispatcherUpdate {
#[prost(uint32, tag = "1")]
pub actor_id: u32,
#[prost(uint64, tag = "2")]
pub dispatcher_id: u64,
#[prost(message, optional, tag = "3")]
pub hash_mapping: ::core::option::Option<super::ActorMapping>,
#[prost(uint32, repeated, tag = "4")]
pub added_downstream_actor_id: ::prost::alloc::vec::Vec<u32>,
#[prost(uint32, repeated, tag = "5")]
pub removed_downstream_actor_id: ::prost::alloc::vec::Vec<u32>,
}
#[derive(prost_helpers::AnyPB)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MergeUpdate {
#[prost(uint32, tag = "1")]
pub actor_id: u32,
#[prost(uint32, tag = "2")]
pub upstream_fragment_id: u32,
#[prost(uint32, optional, tag = "5")]
pub new_upstream_fragment_id: ::core::option::Option<u32>,
#[prost(uint32, repeated, tag = "3")]
pub added_upstream_actor_id: ::prost::alloc::vec::Vec<u32>,
#[prost(uint32, repeated, tag = "4")]
pub removed_upstream_actor_id: ::prost::alloc::vec::Vec<u32>,
}
}
#[derive(prost_helpers::AnyPB)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SourceChangeSplitMutation {
#[prost(map = "uint32, message", tag = "2")]
pub actor_splits: ::std::collections::HashMap<u32, super::source::ConnectorSplits>,
}
#[derive(prost_helpers::AnyPB)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct PauseMutation {}
#[derive(prost_helpers::AnyPB)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct ResumeMutation {}
#[derive(prost_helpers::AnyPB)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ThrottleMutation {
#[prost(map = "uint32, message", tag = "1")]
pub actor_throttle: ::std::collections::HashMap<u32, throttle_mutation::RateLimit>,
}
pub mod throttle_mutation {
#[derive(prost_helpers::AnyPB)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct RateLimit {
#[prost(uint32, optional, tag = "1")]
pub rate_limit: ::core::option::Option<u32>,
}
}
#[derive(prost_helpers::AnyPB)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CombinedMutation {
#[prost(message, repeated, tag = "1")]
pub mutations: ::prost::alloc::vec::Vec<BarrierMutation>,
}
#[derive(prost_helpers::AnyPB)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct SubscriptionUpstreamInfo {
#[prost(uint32, tag = "1")]
pub subscriber_id: u32,
#[prost(uint32, tag = "2")]
pub upstream_mv_table_id: u32,
}
#[derive(prost_helpers::AnyPB)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DropSubscriptionsMutation {
#[prost(message, repeated, tag = "1")]
pub info: ::prost::alloc::vec::Vec<SubscriptionUpstreamInfo>,
}
#[derive(prost_helpers::AnyPB)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct BarrierMutation {
#[prost(
oneof = "barrier_mutation::Mutation",
tags = "3, 4, 5, 6, 7, 8, 10, 12, 100"
)]
pub mutation: ::core::option::Option<barrier_mutation::Mutation>,
}
pub mod barrier_mutation {
#[derive(prost_helpers::AnyPB)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum Mutation {
#[prost(message, tag = "3")]
Add(super::AddMutation),
#[prost(message, tag = "4")]
Stop(super::StopMutation),
#[prost(message, tag = "5")]
Update(super::UpdateMutation),
#[prost(message, tag = "6")]
Splits(super::SourceChangeSplitMutation),
#[prost(message, tag = "7")]
Pause(super::PauseMutation),
#[prost(message, tag = "8")]
Resume(super::ResumeMutation),
#[prost(message, tag = "10")]
Throttle(super::ThrottleMutation),
#[prost(message, tag = "12")]
DropSubscriptions(super::DropSubscriptionsMutation),
#[prost(message, tag = "100")]
Combined(super::CombinedMutation),
}
}
#[derive(prost_helpers::AnyPB)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Barrier {
#[prost(message, optional, tag = "1")]
pub epoch: ::core::option::Option<super::data::Epoch>,
#[prost(message, optional, tag = "3")]
pub mutation: ::core::option::Option<BarrierMutation>,
#[prost(map = "string, string", tag = "2")]
pub tracing_context: ::std::collections::HashMap<
::prost::alloc::string::String,
::prost::alloc::string::String,
>,
#[prost(enumeration = "barrier::BarrierKind", tag = "9")]
pub kind: i32,
#[prost(uint32, repeated, tag = "255")]
pub passed_actors: ::prost::alloc::vec::Vec<u32>,
}
pub mod barrier {
#[derive(prost_helpers::AnyPB)]
#[derive(::enum_as_inner::EnumAsInner)]
#[derive(
Clone,
Copy,
Debug,
PartialEq,
Eq,
Hash,
PartialOrd,
Ord,
::prost::Enumeration
)]
#[repr(i32)]
pub enum BarrierKind {
Unspecified = 0,
Initial = 1,
Barrier = 2,
Checkpoint = 3,
}
impl BarrierKind {
pub fn as_str_name(&self) -> &'static str {
match self {
BarrierKind::Unspecified => "BARRIER_KIND_UNSPECIFIED",
BarrierKind::Initial => "BARRIER_KIND_INITIAL",
BarrierKind::Barrier => "BARRIER_KIND_BARRIER",
BarrierKind::Checkpoint => "BARRIER_KIND_CHECKPOINT",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"BARRIER_KIND_UNSPECIFIED" => Some(Self::Unspecified),
"BARRIER_KIND_INITIAL" => Some(Self::Initial),
"BARRIER_KIND_BARRIER" => Some(Self::Barrier),
"BARRIER_KIND_CHECKPOINT" => Some(Self::Checkpoint),
_ => None,
}
}
}
}
#[derive(prost_helpers::AnyPB)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Watermark {
#[prost(message, optional, tag = "1")]
pub column: ::core::option::Option<super::expr::InputRef>,
#[prost(message, optional, tag = "3")]
pub val: ::core::option::Option<super::data::Datum>,
}
#[derive(prost_helpers::AnyPB)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct StreamMessage {
#[prost(oneof = "stream_message::StreamMessage", tags = "1, 2, 3")]
pub stream_message: ::core::option::Option<stream_message::StreamMessage>,
}
pub mod stream_message {
#[derive(prost_helpers::AnyPB)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum StreamMessage {
#[prost(message, tag = "1")]
StreamChunk(super::super::data::StreamChunk),
#[prost(message, tag = "2")]
Barrier(super::Barrier),
#[prost(message, tag = "3")]
Watermark(super::Watermark),
}
}
#[derive(prost_helpers::AnyPB)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ActorMapping {
#[prost(uint32, repeated, tag = "1")]
pub original_indices: ::prost::alloc::vec::Vec<u32>,
#[prost(uint32, repeated, tag = "2")]
pub data: ::prost::alloc::vec::Vec<u32>,
}
#[derive(prost_helpers::AnyPB)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct StreamSource {
#[prost(uint32, tag = "1")]
pub source_id: u32,
#[prost(message, optional, tag = "2")]
pub state_table: ::core::option::Option<super::catalog::Table>,
#[prost(uint32, optional, tag = "3")]
pub row_id_index: ::core::option::Option<u32>,
#[prost(message, repeated, tag = "4")]
pub columns: ::prost::alloc::vec::Vec<super::plan_common::ColumnCatalog>,
#[prost(btree_map = "string, string", tag = "6")]
pub with_properties: ::prost::alloc::collections::BTreeMap<
::prost::alloc::string::String,
::prost::alloc::string::String,
>,
#[prost(message, optional, tag = "7")]
pub info: ::core::option::Option<super::catalog::StreamSourceInfo>,
#[prost(string, tag = "8")]
pub source_name: ::prost::alloc::string::String,
#[prost(uint32, optional, tag = "9")]
pub rate_limit: ::core::option::Option<u32>,
#[prost(btree_map = "string, message", tag = "10")]
pub secret_refs: ::prost::alloc::collections::BTreeMap<
::prost::alloc::string::String,
super::secret::SecretRef,
>,
}
#[derive(prost_helpers::AnyPB)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct StreamFsFetch {
#[prost(uint32, tag = "1")]
pub source_id: u32,
#[prost(message, optional, tag = "2")]
pub state_table: ::core::option::Option<super::catalog::Table>,
#[prost(uint32, optional, tag = "3")]
pub row_id_index: ::core::option::Option<u32>,
#[prost(message, repeated, tag = "4")]
pub columns: ::prost::alloc::vec::Vec<super::plan_common::ColumnCatalog>,
#[prost(btree_map = "string, string", tag = "6")]
pub with_properties: ::prost::alloc::collections::BTreeMap<
::prost::alloc::string::String,
::prost::alloc::string::String,
>,
#[prost(message, optional, tag = "7")]
pub info: ::core::option::Option<super::catalog::StreamSourceInfo>,
#[prost(string, tag = "8")]
pub source_name: ::prost::alloc::string::String,
#[prost(uint32, optional, tag = "9")]
pub rate_limit: ::core::option::Option<u32>,
#[prost(btree_map = "string, message", tag = "10")]
pub secret_refs: ::prost::alloc::collections::BTreeMap<
::prost::alloc::string::String,
super::secret::SecretRef,
>,
}
#[derive(prost_helpers::AnyPB)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct BarrierRecvNode {}
#[derive(prost_helpers::AnyPB)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SourceNode {
#[prost(message, optional, tag = "1")]
pub source_inner: ::core::option::Option<StreamSource>,
}
#[derive(prost_helpers::AnyPB)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct StreamFsFetchNode {
#[prost(message, optional, tag = "1")]
pub node_inner: ::core::option::Option<StreamFsFetch>,
}
#[derive(prost_helpers::AnyPB)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SourceBackfillNode {
#[prost(uint32, tag = "1")]
pub upstream_source_id: u32,
#[prost(uint32, optional, tag = "2")]
pub row_id_index: ::core::option::Option<u32>,
#[prost(message, repeated, tag = "3")]
pub columns: ::prost::alloc::vec::Vec<super::plan_common::ColumnCatalog>,
#[prost(message, optional, tag = "4")]
pub info: ::core::option::Option<super::catalog::StreamSourceInfo>,
#[prost(string, tag = "5")]
pub source_name: ::prost::alloc::string::String,
#[prost(btree_map = "string, string", tag = "6")]
pub with_properties: ::prost::alloc::collections::BTreeMap<
::prost::alloc::string::String,
::prost::alloc::string::String,
>,
#[prost(uint32, optional, tag = "7")]
pub rate_limit: ::core::option::Option<u32>,
#[prost(message, optional, tag = "8")]
pub state_table: ::core::option::Option<super::catalog::Table>,
#[prost(btree_map = "string, message", tag = "9")]
pub secret_refs: ::prost::alloc::collections::BTreeMap<
::prost::alloc::string::String,
super::secret::SecretRef,
>,
}
#[derive(prost_helpers::AnyPB)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SinkDesc {
#[prost(uint32, tag = "1")]
pub id: u32,
#[prost(string, tag = "2")]
pub name: ::prost::alloc::string::String,
#[prost(string, tag = "3")]
pub definition: ::prost::alloc::string::String,
#[prost(message, repeated, tag = "5")]
pub plan_pk: ::prost::alloc::vec::Vec<super::common::ColumnOrder>,
#[prost(uint32, repeated, tag = "6")]
pub downstream_pk: ::prost::alloc::vec::Vec<u32>,
#[prost(uint32, repeated, tag = "7")]
pub distribution_key: ::prost::alloc::vec::Vec<u32>,
#[prost(btree_map = "string, string", tag = "8")]
pub properties: ::prost::alloc::collections::BTreeMap<
::prost::alloc::string::String,
::prost::alloc::string::String,
>,
#[prost(enumeration = "super::catalog::SinkType", tag = "9")]
pub sink_type: i32,
#[prost(message, repeated, tag = "10")]
pub column_catalogs: ::prost::alloc::vec::Vec<super::plan_common::ColumnCatalog>,
#[prost(string, tag = "11")]
pub db_name: ::prost::alloc::string::String,
#[prost(string, tag = "12")]
pub sink_from_name: ::prost::alloc::string::String,
#[prost(message, optional, tag = "13")]
pub format_desc: ::core::option::Option<super::catalog::SinkFormatDesc>,
#[prost(uint32, optional, tag = "14")]
pub target_table: ::core::option::Option<u32>,
#[prost(uint64, optional, tag = "15")]
pub extra_partition_col_idx: ::core::option::Option<u64>,
#[prost(btree_map = "string, message", tag = "16")]
pub secret_refs: ::prost::alloc::collections::BTreeMap<
::prost::alloc::string::String,
super::secret::SecretRef,
>,
}
#[derive(prost_helpers::AnyPB)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SinkNode {
#[prost(message, optional, tag = "1")]
pub sink_desc: ::core::option::Option<SinkDesc>,
#[prost(message, optional, tag = "2")]
pub table: ::core::option::Option<super::catalog::Table>,
#[prost(enumeration = "SinkLogStoreType", tag = "3")]
pub log_store_type: i32,
}
#[derive(prost_helpers::AnyPB)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ProjectNode {
#[prost(message, repeated, tag = "1")]
pub select_list: ::prost::alloc::vec::Vec<super::expr::ExprNode>,
#[prost(uint32, repeated, tag = "2")]
pub watermark_input_cols: ::prost::alloc::vec::Vec<u32>,
#[prost(uint32, repeated, tag = "3")]
pub watermark_output_cols: ::prost::alloc::vec::Vec<u32>,
#[prost(uint32, repeated, tag = "4")]
pub nondecreasing_exprs: ::prost::alloc::vec::Vec<u32>,
#[prost(bool, tag = "5")]
pub noop_update_hint: bool,
}
#[derive(prost_helpers::AnyPB)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct FilterNode {
#[prost(message, optional, tag = "1")]
pub search_condition: ::core::option::Option<super::expr::ExprNode>,
}
#[derive(prost_helpers::AnyPB)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct ChangeLogNode {
#[prost(bool, tag = "1")]
pub need_op: bool,
}
#[derive(prost_helpers::AnyPB)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CdcFilterNode {
#[prost(message, optional, tag = "1")]
pub search_condition: ::core::option::Option<super::expr::ExprNode>,
#[prost(uint32, tag = "2")]
pub upstream_source_id: u32,
}
#[derive(prost_helpers::AnyPB)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MaterializeNode {
#[prost(uint32, tag = "1")]
pub table_id: u32,
#[prost(message, repeated, tag = "2")]
pub column_orders: ::prost::alloc::vec::Vec<super::common::ColumnOrder>,
#[prost(message, optional, tag = "3")]
pub table: ::core::option::Option<super::catalog::Table>,
}
#[derive(prost_helpers::AnyPB)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct AggCallState {
#[prost(oneof = "agg_call_state::Inner", tags = "1, 3")]
pub inner: ::core::option::Option<agg_call_state::Inner>,
}
pub mod agg_call_state {
#[derive(prost_helpers::AnyPB)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct ValueState {}
#[derive(prost_helpers::AnyPB)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MaterializedInputState {
#[prost(message, optional, tag = "1")]
pub table: ::core::option::Option<super::super::catalog::Table>,
#[prost(uint32, repeated, tag = "2")]
pub included_upstream_indices: ::prost::alloc::vec::Vec<u32>,
#[prost(uint32, repeated, tag = "3")]
pub table_value_indices: ::prost::alloc::vec::Vec<u32>,
#[prost(message, repeated, tag = "4")]
pub order_columns: ::prost::alloc::vec::Vec<super::super::common::ColumnOrder>,
}
#[derive(prost_helpers::AnyPB)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum Inner {
#[prost(message, tag = "1")]
ValueState(ValueState),
#[prost(message, tag = "3")]
MaterializedInputState(MaterializedInputState),
}
}
#[derive(prost_helpers::AnyPB)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SimpleAggNode {
#[prost(message, repeated, tag = "1")]
pub agg_calls: ::prost::alloc::vec::Vec<super::expr::AggCall>,
#[prost(uint32, repeated, tag = "2")]
pub distribution_key: ::prost::alloc::vec::Vec<u32>,
#[prost(message, repeated, tag = "3")]
pub agg_call_states: ::prost::alloc::vec::Vec<AggCallState>,
#[prost(message, optional, tag = "4")]
pub intermediate_state_table: ::core::option::Option<super::catalog::Table>,
#[prost(bool, tag = "5")]
pub is_append_only: bool,
#[prost(map = "uint32, message", tag = "6")]
pub distinct_dedup_tables: ::std::collections::HashMap<u32, super::catalog::Table>,
#[prost(uint32, tag = "7")]
pub row_count_index: u32,
#[prost(enumeration = "AggNodeVersion", tag = "8")]
pub version: i32,
#[prost(bool, tag = "9")]
pub must_output_per_barrier: bool,
}
#[derive(prost_helpers::AnyPB)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct HashAggNode {
#[prost(uint32, repeated, tag = "1")]
pub group_key: ::prost::alloc::vec::Vec<u32>,
#[prost(message, repeated, tag = "2")]
pub agg_calls: ::prost::alloc::vec::Vec<super::expr::AggCall>,
#[prost(message, repeated, tag = "3")]
pub agg_call_states: ::prost::alloc::vec::Vec<AggCallState>,
#[prost(message, optional, tag = "4")]
pub intermediate_state_table: ::core::option::Option<super::catalog::Table>,
#[prost(bool, tag = "5")]
pub is_append_only: bool,
#[prost(map = "uint32, message", tag = "6")]
pub distinct_dedup_tables: ::std::collections::HashMap<u32, super::catalog::Table>,
#[prost(uint32, tag = "7")]
pub row_count_index: u32,
#[prost(bool, tag = "8")]
pub emit_on_window_close: bool,
#[prost(enumeration = "AggNodeVersion", tag = "9")]
pub version: i32,
}
#[derive(prost_helpers::AnyPB)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TopNNode {
#[prost(uint64, tag = "1")]
pub limit: u64,
#[prost(uint64, tag = "2")]
pub offset: u64,
#[prost(message, optional, tag = "3")]
pub table: ::core::option::Option<super::catalog::Table>,
#[prost(message, repeated, tag = "4")]
pub order_by: ::prost::alloc::vec::Vec<super::common::ColumnOrder>,
#[prost(bool, tag = "5")]
pub with_ties: bool,
}
#[derive(prost_helpers::AnyPB)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GroupTopNNode {
#[prost(uint64, tag = "1")]
pub limit: u64,
#[prost(uint64, tag = "2")]
pub offset: u64,
#[prost(uint32, repeated, tag = "3")]
pub group_key: ::prost::alloc::vec::Vec<u32>,
#[prost(message, optional, tag = "4")]
pub table: ::core::option::Option<super::catalog::Table>,
#[prost(message, repeated, tag = "5")]
pub order_by: ::prost::alloc::vec::Vec<super::common::ColumnOrder>,
#[prost(bool, tag = "6")]
pub with_ties: bool,
}
#[derive(prost_helpers::AnyPB)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DeltaExpression {
#[prost(enumeration = "super::expr::expr_node::Type", tag = "1")]
pub delta_type: i32,
#[prost(message, optional, tag = "2")]
pub delta: ::core::option::Option<super::expr::ExprNode>,
}
#[derive(prost_helpers::AnyPB)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct InequalityPair {
#[prost(uint32, tag = "1")]
pub key_required_larger: u32,
#[prost(uint32, tag = "2")]
pub key_required_smaller: u32,
#[prost(bool, tag = "3")]
pub clean_state: bool,
#[prost(message, optional, tag = "4")]
pub delta_expression: ::core::option::Option<DeltaExpression>,
}
#[derive(prost_helpers::AnyPB)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct HashJoinNode {
#[prost(enumeration = "super::plan_common::JoinType", tag = "1")]
pub join_type: i32,
#[prost(int32, repeated, tag = "2")]
pub left_key: ::prost::alloc::vec::Vec<i32>,
#[prost(int32, repeated, tag = "3")]
pub right_key: ::prost::alloc::vec::Vec<i32>,
#[prost(message, optional, tag = "4")]
pub condition: ::core::option::Option<super::expr::ExprNode>,
#[prost(message, repeated, tag = "5")]
pub inequality_pairs: ::prost::alloc::vec::Vec<InequalityPair>,
#[prost(message, optional, tag = "6")]
pub left_table: ::core::option::Option<super::catalog::Table>,
#[prost(message, optional, tag = "7")]
pub right_table: ::core::option::Option<super::catalog::Table>,
#[prost(message, optional, tag = "8")]
pub left_degree_table: ::core::option::Option<super::catalog::Table>,
#[prost(message, optional, tag = "9")]
pub right_degree_table: ::core::option::Option<super::catalog::Table>,
#[prost(uint32, repeated, tag = "10")]
pub output_indices: ::prost::alloc::vec::Vec<u32>,
#[prost(uint32, repeated, tag = "11")]
pub left_deduped_input_pk_indices: ::prost::alloc::vec::Vec<u32>,
#[prost(uint32, repeated, tag = "12")]
pub right_deduped_input_pk_indices: ::prost::alloc::vec::Vec<u32>,
#[prost(bool, repeated, tag = "13")]
pub null_safe: ::prost::alloc::vec::Vec<bool>,
#[prost(bool, tag = "14")]
pub is_append_only: bool,
}
#[derive(prost_helpers::AnyPB)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct AsOfJoinNode {
#[prost(enumeration = "super::plan_common::AsOfJoinType", tag = "1")]
pub join_type: i32,
#[prost(int32, repeated, tag = "2")]
pub left_key: ::prost::alloc::vec::Vec<i32>,
#[prost(int32, repeated, tag = "3")]
pub right_key: ::prost::alloc::vec::Vec<i32>,
#[prost(message, optional, tag = "4")]
pub left_table: ::core::option::Option<super::catalog::Table>,
#[prost(message, optional, tag = "5")]
pub right_table: ::core::option::Option<super::catalog::Table>,
#[prost(uint32, repeated, tag = "6")]
pub output_indices: ::prost::alloc::vec::Vec<u32>,
#[prost(uint32, repeated, tag = "7")]
pub left_deduped_input_pk_indices: ::prost::alloc::vec::Vec<u32>,
#[prost(uint32, repeated, tag = "8")]
pub right_deduped_input_pk_indices: ::prost::alloc::vec::Vec<u32>,
#[prost(bool, repeated, tag = "9")]
pub null_safe: ::prost::alloc::vec::Vec<bool>,
#[prost(message, optional, tag = "10")]
pub asof_desc: ::core::option::Option<super::plan_common::AsOfJoinDesc>,
}
#[derive(prost_helpers::AnyPB)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TemporalJoinNode {
#[prost(enumeration = "super::plan_common::JoinType", tag = "1")]
pub join_type: i32,
#[prost(int32, repeated, tag = "2")]
pub left_key: ::prost::alloc::vec::Vec<i32>,
#[prost(int32, repeated, tag = "3")]
pub right_key: ::prost::alloc::vec::Vec<i32>,
#[prost(bool, repeated, tag = "4")]
pub null_safe: ::prost::alloc::vec::Vec<bool>,
#[prost(message, optional, tag = "5")]
pub condition: ::core::option::Option<super::expr::ExprNode>,
#[prost(uint32, repeated, tag = "6")]
pub output_indices: ::prost::alloc::vec::Vec<u32>,
#[prost(message, optional, tag = "7")]
pub table_desc: ::core::option::Option<super::plan_common::StorageTableDesc>,
#[prost(uint32, repeated, tag = "8")]
pub table_output_indices: ::prost::alloc::vec::Vec<u32>,
#[prost(message, optional, tag = "9")]
pub memo_table: ::core::option::Option<super::catalog::Table>,
#[prost(bool, tag = "10")]
pub is_nested_loop: bool,
}
#[derive(prost_helpers::AnyPB)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DynamicFilterNode {
#[prost(uint32, tag = "1")]
pub left_key: u32,
#[prost(message, optional, tag = "2")]
pub condition: ::core::option::Option<super::expr::ExprNode>,
#[prost(message, optional, tag = "3")]
pub left_table: ::core::option::Option<super::catalog::Table>,
#[prost(message, optional, tag = "4")]
pub right_table: ::core::option::Option<super::catalog::Table>,
#[deprecated]
#[prost(bool, tag = "5")]
pub condition_always_relax: bool,
}
#[derive(prost_helpers::AnyPB)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DeltaIndexJoinNode {
#[prost(enumeration = "super::plan_common::JoinType", tag = "1")]
pub join_type: i32,
#[prost(int32, repeated, tag = "2")]
pub left_key: ::prost::alloc::vec::Vec<i32>,
#[prost(int32, repeated, tag = "3")]
pub right_key: ::prost::alloc::vec::Vec<i32>,
#[prost(message, optional, tag = "4")]
pub condition: ::core::option::Option<super::expr::ExprNode>,
#[prost(uint32, tag = "7")]
pub left_table_id: u32,
#[prost(uint32, tag = "8")]
pub right_table_id: u32,
#[prost(message, optional, tag = "9")]
pub left_info: ::core::option::Option<ArrangementInfo>,
#[prost(message, optional, tag = "10")]
pub right_info: ::core::option::Option<ArrangementInfo>,
#[prost(uint32, repeated, tag = "11")]
pub output_indices: ::prost::alloc::vec::Vec<u32>,
}
#[derive(prost_helpers::AnyPB)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct HopWindowNode {
#[prost(uint32, tag = "1")]
pub time_col: u32,
#[prost(message, optional, tag = "2")]
pub window_slide: ::core::option::Option<super::data::Interval>,
#[prost(message, optional, tag = "3")]
pub window_size: ::core::option::Option<super::data::Interval>,
#[prost(uint32, repeated, tag = "4")]
pub output_indices: ::prost::alloc::vec::Vec<u32>,
#[prost(message, repeated, tag = "5")]
pub window_start_exprs: ::prost::alloc::vec::Vec<super::expr::ExprNode>,
#[prost(message, repeated, tag = "6")]
pub window_end_exprs: ::prost::alloc::vec::Vec<super::expr::ExprNode>,
}
#[derive(prost_helpers::AnyPB)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MergeNode {
#[prost(uint32, repeated, tag = "1")]
pub upstream_actor_id: ::prost::alloc::vec::Vec<u32>,
#[prost(uint32, tag = "2")]
pub upstream_fragment_id: u32,
#[prost(enumeration = "DispatcherType", tag = "3")]
pub upstream_dispatcher_type: i32,
#[prost(message, repeated, tag = "4")]
pub fields: ::prost::alloc::vec::Vec<super::plan_common::Field>,
}
#[derive(prost_helpers::AnyPB)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ExchangeNode {
#[prost(message, optional, tag = "1")]
pub strategy: ::core::option::Option<DispatchStrategy>,
}
#[derive(prost_helpers::AnyPB)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct StreamScanNode {
#[prost(uint32, tag = "1")]
pub table_id: u32,
#[prost(int32, repeated, tag = "2")]
pub upstream_column_ids: ::prost::alloc::vec::Vec<i32>,
#[prost(uint32, repeated, tag = "3")]
pub output_indices: ::prost::alloc::vec::Vec<u32>,
#[prost(enumeration = "StreamScanType", tag = "4")]
pub stream_scan_type: i32,
#[prost(message, optional, tag = "5")]
pub state_table: ::core::option::Option<super::catalog::Table>,
#[prost(message, optional, tag = "7")]
pub table_desc: ::core::option::Option<super::plan_common::StorageTableDesc>,
#[prost(uint32, optional, tag = "8")]
pub rate_limit: ::core::option::Option<u32>,
#[deprecated]
#[prost(uint32, tag = "9")]
pub snapshot_read_barrier_interval: u32,
#[prost(message, optional, tag = "10")]
pub arrangement_table: ::core::option::Option<super::catalog::Table>,
}
#[derive(prost_helpers::AnyPB)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct StreamCdcScanOptions {
#[prost(bool, tag = "1")]
pub disable_backfill: bool,
#[prost(uint32, tag = "2")]
pub snapshot_barrier_interval: u32,
#[prost(uint32, tag = "3")]
pub snapshot_batch_size: u32,
}
#[derive(prost_helpers::AnyPB)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct StreamCdcScanNode {
#[prost(uint32, tag = "1")]
pub table_id: u32,
#[prost(int32, repeated, tag = "2")]
pub upstream_column_ids: ::prost::alloc::vec::Vec<i32>,
#[prost(uint32, repeated, tag = "3")]
pub output_indices: ::prost::alloc::vec::Vec<u32>,
#[prost(message, optional, tag = "4")]
pub state_table: ::core::option::Option<super::catalog::Table>,
#[prost(message, optional, tag = "5")]
pub cdc_table_desc: ::core::option::Option<super::plan_common::ExternalTableDesc>,
#[prost(uint32, optional, tag = "6")]
pub rate_limit: ::core::option::Option<u32>,
#[prost(bool, tag = "7")]
pub disable_backfill: bool,
#[prost(message, optional, tag = "8")]
pub options: ::core::option::Option<StreamCdcScanOptions>,
}
#[derive(prost_helpers::AnyPB)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct BatchPlanNode {
#[prost(message, optional, tag = "1")]
pub table_desc: ::core::option::Option<super::plan_common::StorageTableDesc>,
#[prost(int32, repeated, tag = "2")]
pub column_ids: ::prost::alloc::vec::Vec<i32>,
}
#[derive(prost_helpers::AnyPB)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ArrangementInfo {
#[prost(message, repeated, tag = "1")]
pub arrange_key_orders: ::prost::alloc::vec::Vec<super::common::ColumnOrder>,
#[prost(message, repeated, tag = "2")]
pub column_descs: ::prost::alloc::vec::Vec<super::plan_common::ColumnDesc>,
#[prost(message, optional, tag = "4")]
pub table_desc: ::core::option::Option<super::plan_common::StorageTableDesc>,
#[prost(uint32, repeated, tag = "5")]
pub output_col_idx: ::prost::alloc::vec::Vec<u32>,
}
#[derive(prost_helpers::AnyPB)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ArrangeNode {
#[prost(message, optional, tag = "1")]
pub table_info: ::core::option::Option<ArrangementInfo>,
#[prost(uint32, repeated, tag = "2")]
pub distribution_key: ::prost::alloc::vec::Vec<u32>,
#[prost(message, optional, tag = "3")]
pub table: ::core::option::Option<super::catalog::Table>,
}
#[derive(prost_helpers::AnyPB)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct LookupNode {
#[prost(int32, repeated, tag = "1")]
pub arrange_key: ::prost::alloc::vec::Vec<i32>,
#[prost(int32, repeated, tag = "2")]
pub stream_key: ::prost::alloc::vec::Vec<i32>,
#[prost(bool, tag = "3")]
pub use_current_epoch: bool,
#[prost(int32, repeated, tag = "4")]
pub column_mapping: ::prost::alloc::vec::Vec<i32>,
#[prost(message, optional, tag = "7")]
pub arrangement_table_info: ::core::option::Option<ArrangementInfo>,
#[prost(oneof = "lookup_node::ArrangementTableId", tags = "5, 6")]
pub arrangement_table_id: ::core::option::Option<lookup_node::ArrangementTableId>,
}
pub mod lookup_node {
#[derive(prost_helpers::AnyPB)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
pub enum ArrangementTableId {
#[prost(uint32, tag = "5")]
TableId(u32),
#[prost(uint32, tag = "6")]
IndexId(u32),
}
}
#[derive(prost_helpers::AnyPB)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct WatermarkFilterNode {
#[prost(message, repeated, tag = "1")]
pub watermark_descs: ::prost::alloc::vec::Vec<super::catalog::WatermarkDesc>,
#[prost(message, repeated, tag = "2")]
pub tables: ::prost::alloc::vec::Vec<super::catalog::Table>,
}
#[derive(prost_helpers::AnyPB)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct UnionNode {}
#[derive(prost_helpers::AnyPB)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct LookupUnionNode {
#[prost(uint32, repeated, tag = "1")]
pub order: ::prost::alloc::vec::Vec<u32>,
}
#[derive(prost_helpers::AnyPB)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ExpandNode {
#[prost(message, repeated, tag = "1")]
pub column_subsets: ::prost::alloc::vec::Vec<expand_node::Subset>,
}
pub mod expand_node {
#[derive(prost_helpers::AnyPB)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Subset {
#[prost(uint32, repeated, tag = "1")]
pub column_indices: ::prost::alloc::vec::Vec<u32>,
}
}
#[derive(prost_helpers::AnyPB)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ProjectSetNode {
#[prost(message, repeated, tag = "1")]
pub select_list: ::prost::alloc::vec::Vec<super::expr::ProjectSetSelectItem>,
#[prost(uint32, repeated, tag = "2")]
pub watermark_input_cols: ::prost::alloc::vec::Vec<u32>,
#[prost(uint32, repeated, tag = "3")]
pub watermark_expr_indices: ::prost::alloc::vec::Vec<u32>,
#[prost(uint32, repeated, tag = "4")]
pub nondecreasing_exprs: ::prost::alloc::vec::Vec<u32>,
}
#[derive(prost_helpers::AnyPB)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SortNode {
#[prost(message, optional, tag = "1")]
pub state_table: ::core::option::Option<super::catalog::Table>,
#[prost(uint32, tag = "2")]
pub sort_column_index: u32,
}
#[derive(prost_helpers::AnyPB)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DmlNode {
#[prost(uint32, tag = "1")]
pub table_id: u32,
#[prost(uint64, tag = "3")]
pub table_version_id: u64,
#[prost(message, repeated, tag = "2")]
pub column_descs: ::prost::alloc::vec::Vec<super::plan_common::ColumnDesc>,
}
#[derive(prost_helpers::AnyPB)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct RowIdGenNode {
#[prost(uint64, tag = "1")]
pub row_id_index: u64,
}
#[derive(prost_helpers::AnyPB)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct NowModeUpdateCurrent {}
#[derive(prost_helpers::AnyPB)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct NowModeGenerateSeries {
#[prost(message, optional, tag = "1")]
pub start_timestamp: ::core::option::Option<super::data::Datum>,
#[prost(message, optional, tag = "2")]
pub interval: ::core::option::Option<super::data::Datum>,
}
#[derive(prost_helpers::AnyPB)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct NowNode {
#[prost(message, optional, tag = "1")]
pub state_table: ::core::option::Option<super::catalog::Table>,
#[prost(oneof = "now_node::Mode", tags = "101, 102")]
pub mode: ::core::option::Option<now_node::Mode>,
}
pub mod now_node {
#[derive(prost_helpers::AnyPB)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum Mode {
#[prost(message, tag = "101")]
UpdateCurrent(super::NowModeUpdateCurrent),
#[prost(message, tag = "102")]
GenerateSeries(super::NowModeGenerateSeries),
}
}
#[derive(prost_helpers::AnyPB)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ValuesNode {
#[prost(message, repeated, tag = "1")]
pub tuples: ::prost::alloc::vec::Vec<values_node::ExprTuple>,
#[prost(message, repeated, tag = "2")]
pub fields: ::prost::alloc::vec::Vec<super::plan_common::Field>,
}
pub mod values_node {
#[derive(prost_helpers::AnyPB)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ExprTuple {
#[prost(message, repeated, tag = "1")]
pub cells: ::prost::alloc::vec::Vec<super::super::expr::ExprNode>,
}
}
#[derive(prost_helpers::AnyPB)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DedupNode {
#[prost(message, optional, tag = "1")]
pub state_table: ::core::option::Option<super::catalog::Table>,
#[prost(uint32, repeated, tag = "2")]
pub dedup_column_indices: ::prost::alloc::vec::Vec<u32>,
}
#[derive(prost_helpers::AnyPB)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct NoOpNode {}
#[derive(prost_helpers::AnyPB)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct EowcOverWindowNode {
#[prost(message, repeated, tag = "1")]
pub calls: ::prost::alloc::vec::Vec<super::expr::WindowFunction>,
#[prost(uint32, repeated, tag = "2")]
pub partition_by: ::prost::alloc::vec::Vec<u32>,
#[prost(message, repeated, tag = "3")]
pub order_by: ::prost::alloc::vec::Vec<super::common::ColumnOrder>,
#[prost(message, optional, tag = "4")]
pub state_table: ::core::option::Option<super::catalog::Table>,
}
#[derive(prost_helpers::AnyPB)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct OverWindowNode {
#[prost(message, repeated, tag = "1")]
pub calls: ::prost::alloc::vec::Vec<super::expr::WindowFunction>,
#[prost(uint32, repeated, tag = "2")]
pub partition_by: ::prost::alloc::vec::Vec<u32>,
#[prost(message, repeated, tag = "3")]
pub order_by: ::prost::alloc::vec::Vec<super::common::ColumnOrder>,
#[prost(message, optional, tag = "4")]
pub state_table: ::core::option::Option<super::catalog::Table>,
#[prost(enumeration = "OverWindowCachePolicy", tag = "5")]
pub cache_policy: i32,
}
#[derive(prost_helpers::AnyPB)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct LocalApproxPercentileNode {
#[prost(double, tag = "1")]
pub base: f64,
#[prost(uint32, tag = "2")]
pub percentile_index: u32,
}
#[derive(prost_helpers::AnyPB)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GlobalApproxPercentileNode {
#[prost(double, tag = "1")]
pub base: f64,
#[prost(double, tag = "2")]
pub quantile: f64,
#[prost(message, optional, tag = "3")]
pub bucket_state_table: ::core::option::Option<super::catalog::Table>,
#[prost(message, optional, tag = "4")]
pub count_state_table: ::core::option::Option<super::catalog::Table>,
}
#[derive(prost_helpers::AnyPB)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RowMergeNode {
#[prost(message, optional, tag = "1")]
pub lhs_mapping: ::core::option::Option<super::catalog::ColIndexMapping>,
#[prost(message, optional, tag = "2")]
pub rhs_mapping: ::core::option::Option<super::catalog::ColIndexMapping>,
}
#[derive(prost_helpers::AnyPB)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct StreamNode {
#[prost(uint64, tag = "1")]
pub operator_id: u64,
#[prost(message, repeated, tag = "3")]
pub input: ::prost::alloc::vec::Vec<StreamNode>,
#[prost(uint32, repeated, tag = "2")]
pub stream_key: ::prost::alloc::vec::Vec<u32>,
#[prost(bool, tag = "24")]
pub append_only: bool,
#[prost(string, tag = "18")]
pub identity: ::prost::alloc::string::String,
#[prost(message, repeated, tag = "19")]
pub fields: ::prost::alloc::vec::Vec<super::plan_common::Field>,
#[prost(
oneof = "stream_node::NodeBody",
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"
)]
pub node_body: ::core::option::Option<stream_node::NodeBody>,
}
pub mod stream_node {
#[derive(prost_helpers::AnyPB)]
#[derive(::enum_as_inner::EnumAsInner, ::strum::Display)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum NodeBody {
#[prost(message, tag = "100")]
Source(super::SourceNode),
#[prost(message, tag = "101")]
Project(super::ProjectNode),
#[prost(message, tag = "102")]
Filter(super::FilterNode),
#[prost(message, tag = "103")]
Materialize(super::MaterializeNode),
#[prost(message, tag = "104")]
StatelessSimpleAgg(super::SimpleAggNode),
#[prost(message, tag = "105")]
SimpleAgg(super::SimpleAggNode),
#[prost(message, tag = "106")]
HashAgg(super::HashAggNode),
#[prost(message, tag = "107")]
AppendOnlyTopN(super::TopNNode),
#[prost(message, tag = "108")]
HashJoin(super::HashJoinNode),
#[prost(message, tag = "109")]
TopN(super::TopNNode),
#[prost(message, tag = "110")]
HopWindow(super::HopWindowNode),
#[prost(message, tag = "111")]
Merge(super::MergeNode),
#[prost(message, tag = "112")]
Exchange(super::ExchangeNode),
#[prost(message, tag = "113")]
StreamScan(super::StreamScanNode),
#[prost(message, tag = "114")]
BatchPlan(super::BatchPlanNode),
#[prost(message, tag = "115")]
Lookup(super::LookupNode),
#[prost(message, tag = "116")]
Arrange(super::ArrangeNode),
#[prost(message, tag = "117")]
LookupUnion(super::LookupUnionNode),
#[prost(message, tag = "118")]
Union(super::UnionNode),
#[prost(message, tag = "119")]
DeltaIndexJoin(super::DeltaIndexJoinNode),
#[prost(message, tag = "120")]
Sink(super::SinkNode),
#[prost(message, tag = "121")]
Expand(super::ExpandNode),
#[prost(message, tag = "122")]
DynamicFilter(super::DynamicFilterNode),
#[prost(message, tag = "123")]
ProjectSet(super::ProjectSetNode),
#[prost(message, tag = "124")]
GroupTopN(super::GroupTopNNode),
#[prost(message, tag = "125")]
Sort(super::SortNode),
#[prost(message, tag = "126")]
WatermarkFilter(super::WatermarkFilterNode),
#[prost(message, tag = "127")]
Dml(super::DmlNode),
#[prost(message, tag = "128")]
RowIdGen(super::RowIdGenNode),
#[prost(message, tag = "129")]
Now(super::NowNode),
#[prost(message, tag = "130")]
AppendOnlyGroupTopN(super::GroupTopNNode),
#[prost(message, tag = "131")]
TemporalJoin(super::TemporalJoinNode),
#[prost(message, tag = "132")]
BarrierRecv(super::BarrierRecvNode),
#[prost(message, tag = "133")]
Values(super::ValuesNode),
#[prost(message, tag = "134")]
AppendOnlyDedup(super::DedupNode),
#[prost(message, tag = "135")]
NoOp(super::NoOpNode),
#[prost(message, tag = "136")]
EowcOverWindow(super::EowcOverWindowNode),
#[prost(message, tag = "137")]
OverWindow(super::OverWindowNode),
#[prost(message, tag = "138")]
StreamFsFetch(super::StreamFsFetchNode),
#[prost(message, tag = "139")]
StreamCdcScan(super::StreamCdcScanNode),
#[prost(message, tag = "140")]
CdcFilter(super::CdcFilterNode),
#[prost(message, tag = "142")]
SourceBackfill(super::SourceBackfillNode),
#[prost(message, tag = "143")]
Changelog(super::ChangeLogNode),
#[prost(message, tag = "144")]
LocalApproxPercentile(super::LocalApproxPercentileNode),
#[prost(message, tag = "145")]
GlobalApproxPercentile(super::GlobalApproxPercentileNode),
#[prost(message, tag = "146")]
RowMerge(super::RowMergeNode),
#[prost(message, tag = "147")]
AsOfJoin(super::AsOfJoinNode),
}
}
#[derive(prost_helpers::AnyPB)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DispatchStrategy {
#[prost(enumeration = "DispatcherType", tag = "1")]
pub r#type: i32,
#[prost(uint32, repeated, tag = "2")]
pub dist_key_indices: ::prost::alloc::vec::Vec<u32>,
#[prost(uint32, repeated, tag = "3")]
pub output_indices: ::prost::alloc::vec::Vec<u32>,
}
#[derive(prost_helpers::AnyPB)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Dispatcher {
#[prost(enumeration = "DispatcherType", tag = "1")]
pub r#type: i32,
#[prost(uint32, repeated, tag = "2")]
pub dist_key_indices: ::prost::alloc::vec::Vec<u32>,
#[prost(uint32, repeated, tag = "6")]
pub output_indices: ::prost::alloc::vec::Vec<u32>,
#[prost(message, optional, tag = "3")]
pub hash_mapping: ::core::option::Option<ActorMapping>,
#[prost(uint64, tag = "4")]
pub dispatcher_id: u64,
#[prost(uint32, repeated, tag = "5")]
pub downstream_actor_id: ::prost::alloc::vec::Vec<u32>,
}
#[derive(prost_helpers::AnyPB)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct StreamActor {
#[prost(uint32, tag = "1")]
pub actor_id: u32,
#[prost(uint32, tag = "2")]
pub fragment_id: u32,
#[prost(message, optional, tag = "3")]
pub nodes: ::core::option::Option<StreamNode>,
#[prost(message, repeated, tag = "4")]
pub dispatcher: ::prost::alloc::vec::Vec<Dispatcher>,
#[prost(uint32, repeated, tag = "6")]
pub upstream_actor_id: ::prost::alloc::vec::Vec<u32>,
#[prost(message, optional, tag = "8")]
pub vnode_bitmap: ::core::option::Option<super::common::Buffer>,
#[prost(string, tag = "9")]
pub mview_definition: ::prost::alloc::string::String,
#[prost(message, optional, tag = "10")]
pub expr_context: ::core::option::Option<super::plan_common::ExprContext>,
}
#[derive(prost_helpers::AnyPB)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct StreamContext {
#[prost(string, tag = "1")]
pub timezone: ::prost::alloc::string::String,
}
#[derive(prost_helpers::AnyPB)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct StreamFragmentGraph {
#[prost(map = "uint32, message", tag = "1")]
pub fragments: ::std::collections::HashMap<
u32,
stream_fragment_graph::StreamFragment,
>,
#[prost(message, repeated, tag = "2")]
pub edges: ::prost::alloc::vec::Vec<stream_fragment_graph::StreamFragmentEdge>,
#[prost(uint32, repeated, tag = "3")]
pub dependent_table_ids: ::prost::alloc::vec::Vec<u32>,
#[prost(uint32, tag = "4")]
pub table_ids_cnt: u32,
#[prost(message, optional, tag = "5")]
pub ctx: ::core::option::Option<StreamContext>,
#[prost(message, optional, tag = "6")]
pub parallelism: ::core::option::Option<stream_fragment_graph::Parallelism>,
#[prost(uint32, tag = "7")]
pub max_parallelism: u32,
}
pub mod stream_fragment_graph {
#[derive(prost_helpers::AnyPB)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct StreamFragment {
#[prost(uint32, tag = "1")]
pub fragment_id: u32,
#[prost(message, optional, tag = "2")]
pub node: ::core::option::Option<super::StreamNode>,
#[prost(uint32, tag = "3")]
pub fragment_type_mask: u32,
#[prost(bool, tag = "4")]
pub requires_singleton: bool,
#[prost(uint32, tag = "5")]
pub table_ids_cnt: u32,
#[prost(uint32, repeated, tag = "6")]
pub upstream_table_ids: ::prost::alloc::vec::Vec<u32>,
}
#[derive(prost_helpers::AnyPB)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct StreamFragmentEdge {
#[prost(message, optional, tag = "1")]
pub dispatch_strategy: ::core::option::Option<super::DispatchStrategy>,
#[prost(uint64, tag = "3")]
pub link_id: u64,
#[prost(uint32, tag = "4")]
pub upstream_id: u32,
#[prost(uint32, tag = "5")]
pub downstream_id: u32,
}
#[derive(prost_helpers::AnyPB)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct Parallelism {
#[prost(uint64, tag = "1")]
pub parallelism: u64,
}
}
#[derive(prost_helpers::AnyPB)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum SinkLogStoreType {
Unspecified = 0,
KvLogStore = 1,
InMemoryLogStore = 2,
}
impl SinkLogStoreType {
pub fn as_str_name(&self) -> &'static str {
match self {
SinkLogStoreType::Unspecified => "SINK_LOG_STORE_TYPE_UNSPECIFIED",
SinkLogStoreType::KvLogStore => "SINK_LOG_STORE_TYPE_KV_LOG_STORE",
SinkLogStoreType::InMemoryLogStore => {
"SINK_LOG_STORE_TYPE_IN_MEMORY_LOG_STORE"
}
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"SINK_LOG_STORE_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
"SINK_LOG_STORE_TYPE_KV_LOG_STORE" => Some(Self::KvLogStore),
"SINK_LOG_STORE_TYPE_IN_MEMORY_LOG_STORE" => Some(Self::InMemoryLogStore),
_ => None,
}
}
}
#[derive(prost_helpers::AnyPB)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum AggNodeVersion {
Unspecified = 0,
Issue12140 = 1,
Issue13465 = 2,
Max = 2147483647,
}
impl AggNodeVersion {
pub fn as_str_name(&self) -> &'static str {
match self {
AggNodeVersion::Unspecified => "AGG_NODE_VERSION_UNSPECIFIED",
AggNodeVersion::Issue12140 => "AGG_NODE_VERSION_ISSUE_12140",
AggNodeVersion::Issue13465 => "AGG_NODE_VERSION_ISSUE_13465",
AggNodeVersion::Max => "AGG_NODE_VERSION_MAX",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"AGG_NODE_VERSION_UNSPECIFIED" => Some(Self::Unspecified),
"AGG_NODE_VERSION_ISSUE_12140" => Some(Self::Issue12140),
"AGG_NODE_VERSION_ISSUE_13465" => Some(Self::Issue13465),
"AGG_NODE_VERSION_MAX" => Some(Self::Max),
_ => None,
}
}
}
#[derive(prost_helpers::AnyPB)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum StreamScanType {
Unspecified = 0,
Chain = 1,
Rearrange = 2,
Backfill = 3,
UpstreamOnly = 4,
ArrangementBackfill = 5,
SnapshotBackfill = 6,
}
impl StreamScanType {
pub fn as_str_name(&self) -> &'static str {
match self {
StreamScanType::Unspecified => "STREAM_SCAN_TYPE_UNSPECIFIED",
StreamScanType::Chain => "STREAM_SCAN_TYPE_CHAIN",
StreamScanType::Rearrange => "STREAM_SCAN_TYPE_REARRANGE",
StreamScanType::Backfill => "STREAM_SCAN_TYPE_BACKFILL",
StreamScanType::UpstreamOnly => "STREAM_SCAN_TYPE_UPSTREAM_ONLY",
StreamScanType::ArrangementBackfill => {
"STREAM_SCAN_TYPE_ARRANGEMENT_BACKFILL"
}
StreamScanType::SnapshotBackfill => "STREAM_SCAN_TYPE_SNAPSHOT_BACKFILL",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"STREAM_SCAN_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
"STREAM_SCAN_TYPE_CHAIN" => Some(Self::Chain),
"STREAM_SCAN_TYPE_REARRANGE" => Some(Self::Rearrange),
"STREAM_SCAN_TYPE_BACKFILL" => Some(Self::Backfill),
"STREAM_SCAN_TYPE_UPSTREAM_ONLY" => Some(Self::UpstreamOnly),
"STREAM_SCAN_TYPE_ARRANGEMENT_BACKFILL" => Some(Self::ArrangementBackfill),
"STREAM_SCAN_TYPE_SNAPSHOT_BACKFILL" => Some(Self::SnapshotBackfill),
_ => None,
}
}
}
#[derive(prost_helpers::AnyPB)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum OverWindowCachePolicy {
Unspecified = 0,
Full = 1,
Recent = 2,
RecentFirstN = 3,
RecentLastN = 4,
}
impl OverWindowCachePolicy {
pub fn as_str_name(&self) -> &'static str {
match self {
OverWindowCachePolicy::Unspecified => "OVER_WINDOW_CACHE_POLICY_UNSPECIFIED",
OverWindowCachePolicy::Full => "OVER_WINDOW_CACHE_POLICY_FULL",
OverWindowCachePolicy::Recent => "OVER_WINDOW_CACHE_POLICY_RECENT",
OverWindowCachePolicy::RecentFirstN => {
"OVER_WINDOW_CACHE_POLICY_RECENT_FIRST_N"
}
OverWindowCachePolicy::RecentLastN => {
"OVER_WINDOW_CACHE_POLICY_RECENT_LAST_N"
}
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"OVER_WINDOW_CACHE_POLICY_UNSPECIFIED" => Some(Self::Unspecified),
"OVER_WINDOW_CACHE_POLICY_FULL" => Some(Self::Full),
"OVER_WINDOW_CACHE_POLICY_RECENT" => Some(Self::Recent),
"OVER_WINDOW_CACHE_POLICY_RECENT_FIRST_N" => Some(Self::RecentFirstN),
"OVER_WINDOW_CACHE_POLICY_RECENT_LAST_N" => Some(Self::RecentLastN),
_ => None,
}
}
}
#[derive(prost_helpers::AnyPB)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum DispatcherType {
Unspecified = 0,
Hash = 1,
Broadcast = 2,
Simple = 3,
NoShuffle = 4,
}
impl DispatcherType {
pub fn as_str_name(&self) -> &'static str {
match self {
DispatcherType::Unspecified => "DISPATCHER_TYPE_UNSPECIFIED",
DispatcherType::Hash => "DISPATCHER_TYPE_HASH",
DispatcherType::Broadcast => "DISPATCHER_TYPE_BROADCAST",
DispatcherType::Simple => "DISPATCHER_TYPE_SIMPLE",
DispatcherType::NoShuffle => "DISPATCHER_TYPE_NO_SHUFFLE",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"DISPATCHER_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
"DISPATCHER_TYPE_HASH" => Some(Self::Hash),
"DISPATCHER_TYPE_BROADCAST" => Some(Self::Broadcast),
"DISPATCHER_TYPE_SIMPLE" => Some(Self::Simple),
"DISPATCHER_TYPE_NO_SHUFFLE" => Some(Self::NoShuffle),
_ => None,
}
}
}
#[derive(prost_helpers::AnyPB)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum FragmentTypeFlag {
FragmentUnspecified = 0,
Source = 1,
Mview = 2,
Sink = 4,
Now = 8,
StreamScan = 16,
BarrierRecv = 32,
Values = 64,
Dml = 128,
CdcFilter = 256,
SourceScan = 1024,
SnapshotBackfillStreamScan = 2048,
FsFetch = 4096,
}
impl FragmentTypeFlag {
pub fn as_str_name(&self) -> &'static str {
match self {
FragmentTypeFlag::FragmentUnspecified => {
"FRAGMENT_TYPE_FLAG_FRAGMENT_UNSPECIFIED"
}
FragmentTypeFlag::Source => "FRAGMENT_TYPE_FLAG_SOURCE",
FragmentTypeFlag::Mview => "FRAGMENT_TYPE_FLAG_MVIEW",
FragmentTypeFlag::Sink => "FRAGMENT_TYPE_FLAG_SINK",
FragmentTypeFlag::Now => "FRAGMENT_TYPE_FLAG_NOW",
FragmentTypeFlag::StreamScan => "FRAGMENT_TYPE_FLAG_STREAM_SCAN",
FragmentTypeFlag::BarrierRecv => "FRAGMENT_TYPE_FLAG_BARRIER_RECV",
FragmentTypeFlag::Values => "FRAGMENT_TYPE_FLAG_VALUES",
FragmentTypeFlag::Dml => "FRAGMENT_TYPE_FLAG_DML",
FragmentTypeFlag::CdcFilter => "FRAGMENT_TYPE_FLAG_CDC_FILTER",
FragmentTypeFlag::SourceScan => "FRAGMENT_TYPE_FLAG_SOURCE_SCAN",
FragmentTypeFlag::SnapshotBackfillStreamScan => {
"FRAGMENT_TYPE_FLAG_SNAPSHOT_BACKFILL_STREAM_SCAN"
}
FragmentTypeFlag::FsFetch => "FRAGMENT_TYPE_FLAG_FS_FETCH",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"FRAGMENT_TYPE_FLAG_FRAGMENT_UNSPECIFIED" => Some(Self::FragmentUnspecified),
"FRAGMENT_TYPE_FLAG_SOURCE" => Some(Self::Source),
"FRAGMENT_TYPE_FLAG_MVIEW" => Some(Self::Mview),
"FRAGMENT_TYPE_FLAG_SINK" => Some(Self::Sink),
"FRAGMENT_TYPE_FLAG_NOW" => Some(Self::Now),
"FRAGMENT_TYPE_FLAG_STREAM_SCAN" => Some(Self::StreamScan),
"FRAGMENT_TYPE_FLAG_BARRIER_RECV" => Some(Self::BarrierRecv),
"FRAGMENT_TYPE_FLAG_VALUES" => Some(Self::Values),
"FRAGMENT_TYPE_FLAG_DML" => Some(Self::Dml),
"FRAGMENT_TYPE_FLAG_CDC_FILTER" => Some(Self::CdcFilter),
"FRAGMENT_TYPE_FLAG_SOURCE_SCAN" => Some(Self::SourceScan),
"FRAGMENT_TYPE_FLAG_SNAPSHOT_BACKFILL_STREAM_SCAN" => {
Some(Self::SnapshotBackfillStreamScan)
}
"FRAGMENT_TYPE_FLAG_FS_FETCH" => Some(Self::FsFetch),
_ => None,
}
}
}