#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ProtoJoinPlan {
#[prost(oneof = "proto_join_plan::Kind", tags = "1, 2")]
pub kind: ::core::option::Option<proto_join_plan::Kind>,
}
pub mod proto_join_plan {
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum Kind {
#[prost(message, tag = "1")]
Linear(super::ProtoLinearJoinPlan),
#[prost(message, tag = "2")]
Delta(super::ProtoDeltaJoinPlan),
}
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ProtoMirScalarVec {
#[prost(message, repeated, tag = "1")]
pub values: ::prost::alloc::vec::Vec<::mz_expr::ProtoMirScalarExpr>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ProtoJoinClosureEquivalents {
#[prost(message, repeated, tag = "1")]
pub values: ::prost::alloc::vec::Vec<::mz_expr::ProtoMirScalarExpr>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ProtoJoinClosure {
#[prost(message, repeated, tag = "1")]
pub ready_equivalences: ::prost::alloc::vec::Vec<ProtoMirScalarVec>,
#[prost(message, optional, tag = "2")]
pub before: ::core::option::Option<::mz_expr::ProtoSafeMfpPlan>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ProtoLinearStagePlan {
#[prost(uint64, tag = "1")]
pub lookup_relation: u64,
#[prost(message, repeated, tag = "2")]
pub stream_key: ::prost::alloc::vec::Vec<::mz_expr::ProtoMirScalarExpr>,
#[prost(uint64, repeated, tag = "3")]
pub stream_thinning: ::prost::alloc::vec::Vec<u64>,
#[prost(message, repeated, tag = "4")]
pub lookup_key: ::prost::alloc::vec::Vec<::mz_expr::ProtoMirScalarExpr>,
#[prost(message, optional, tag = "5")]
pub closure: ::core::option::Option<ProtoJoinClosure>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ProtoLinearJoinPlan {
#[prost(uint64, tag = "1")]
pub source_relation: u64,
#[prost(message, optional, tag = "2")]
pub source_key: ::core::option::Option<ProtoMirScalarVec>,
#[prost(message, optional, tag = "3")]
pub initial_closure: ::core::option::Option<ProtoJoinClosure>,
#[prost(message, repeated, tag = "4")]
pub stage_plans: ::prost::alloc::vec::Vec<ProtoLinearStagePlan>,
#[prost(message, optional, tag = "5")]
pub final_closure: ::core::option::Option<ProtoJoinClosure>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ProtoDeltaStagePlan {
#[prost(uint64, tag = "1")]
pub lookup_relation: u64,
#[prost(message, repeated, tag = "2")]
pub stream_key: ::prost::alloc::vec::Vec<::mz_expr::ProtoMirScalarExpr>,
#[prost(uint64, repeated, tag = "3")]
pub stream_thinning: ::prost::alloc::vec::Vec<u64>,
#[prost(message, repeated, tag = "4")]
pub lookup_key: ::prost::alloc::vec::Vec<::mz_expr::ProtoMirScalarExpr>,
#[prost(message, optional, tag = "5")]
pub closure: ::core::option::Option<ProtoJoinClosure>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ProtoDeltaPathPlan {
#[prost(uint64, tag = "1")]
pub source_relation: u64,
#[prost(message, repeated, tag = "2")]
pub source_key: ::prost::alloc::vec::Vec<::mz_expr::ProtoMirScalarExpr>,
#[prost(message, optional, tag = "3")]
pub initial_closure: ::core::option::Option<ProtoJoinClosure>,
#[prost(message, repeated, tag = "4")]
pub stage_plans: ::prost::alloc::vec::Vec<ProtoDeltaStagePlan>,
#[prost(message, optional, tag = "5")]
pub final_closure: ::core::option::Option<ProtoJoinClosure>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ProtoDeltaJoinPlan {
#[prost(message, repeated, tag = "1")]
pub path_plans: ::prost::alloc::vec::Vec<ProtoDeltaPathPlan>,
}