#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ProtoTopKPlan {
#[prost(oneof = "proto_top_k_plan::Kind", tags = "1, 2, 3")]
pub kind: ::core::option::Option<proto_top_k_plan::Kind>,
}
pub mod proto_top_k_plan {
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum Kind {
#[prost(message, tag = "1")]
Basic(super::ProtoBasicTopKPlan),
#[prost(message, tag = "2")]
MonotonicTopK(super::ProtoMonotonicTopKPlan),
#[prost(message, tag = "3")]
MonotonicTop1(super::ProtoMonotonicTop1Plan),
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ProtoBasicTopKPlan {
#[prost(uint64, repeated, tag = "1")]
pub group_key: ::prost::alloc::vec::Vec<u64>,
#[prost(message, repeated, tag = "2")]
pub order_key: ::prost::alloc::vec::Vec<::mz_expr::ProtoColumnOrder>,
#[prost(uint64, optional, tag = "3")]
pub limit: ::core::option::Option<u64>,
#[prost(uint64, tag = "4")]
pub offset: u64,
#[prost(uint64, tag = "5")]
pub arity: u64,
#[prost(uint64, repeated, tag = "6")]
pub buckets: ::prost::alloc::vec::Vec<u64>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ProtoMonotonicTop1Plan {
#[prost(uint64, repeated, tag = "1")]
pub group_key: ::prost::alloc::vec::Vec<u64>,
#[prost(message, repeated, tag = "2")]
pub order_key: ::prost::alloc::vec::Vec<::mz_expr::ProtoColumnOrder>,
#[prost(bool, tag = "3")]
pub must_consolidate: bool,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ProtoMonotonicTopKPlan {
#[prost(uint64, repeated, tag = "1")]
pub group_key: ::prost::alloc::vec::Vec<u64>,
#[prost(message, repeated, tag = "2")]
pub order_key: ::prost::alloc::vec::Vec<::mz_expr::ProtoColumnOrder>,
#[prost(uint64, optional, tag = "3")]
pub limit: ::core::option::Option<u64>,
#[prost(uint64, tag = "4")]
pub arity: u64,
#[prost(bool, tag = "5")]
pub must_consolidate: bool,
}