pub struct AggregationAnalysis {
pub aggregates: Vec<AggregateInfo>,
pub group_by_columns: Vec<String>,
pub has_having: bool,
pub having_expr: Option<String>,
}Expand description
Analysis result for aggregations in a query.
Fields§
§aggregates: Vec<AggregateInfo>List of aggregate functions found
group_by_columns: Vec<String>GROUP BY columns
has_having: boolWhether the query has a HAVING clause
having_expr: Option<String>The HAVING expression as SQL text (for downstream evaluation)
Implementations§
Source§impl AggregationAnalysis
impl AggregationAnalysis
Sourcepub fn has_aggregates(&self) -> bool
pub fn has_aggregates(&self) -> bool
Check if this analysis contains any aggregates.
Sourcepub fn has_order_sensitive(&self) -> bool
pub fn has_order_sensitive(&self) -> bool
Check if any aggregate is order-sensitive.
Sourcepub fn all_decomposable(&self) -> bool
pub fn all_decomposable(&self) -> bool
Check if all aggregates are decomposable.
Sourcepub fn get_by_type(&self, agg_type: AggregateType) -> Vec<&AggregateInfo>
pub fn get_by_type(&self, agg_type: AggregateType) -> Vec<&AggregateInfo>
Get aggregates by type.
Sourcepub fn has_any_filter(&self) -> bool
pub fn has_any_filter(&self) -> bool
Check if any aggregate has a FILTER clause.
Sourcepub fn has_any_within_group(&self) -> bool
pub fn has_any_within_group(&self) -> bool
Check if any aggregate has a WITHIN GROUP clause.
Trait Implementations§
Source§impl Clone for AggregationAnalysis
impl Clone for AggregationAnalysis
Source§fn clone(&self) -> AggregationAnalysis
fn clone(&self) -> AggregationAnalysis
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for AggregationAnalysis
impl Debug for AggregationAnalysis
Source§impl Default for AggregationAnalysis
impl Default for AggregationAnalysis
Source§fn default() -> AggregationAnalysis
fn default() -> AggregationAnalysis
Returns the “default value” for a type. Read more
Auto Trait Implementations§
impl Freeze for AggregationAnalysis
impl RefUnwindSafe for AggregationAnalysis
impl Send for AggregationAnalysis
impl Sync for AggregationAnalysis
impl Unpin for AggregationAnalysis
impl UnsafeUnpin for AggregationAnalysis
impl UnwindSafe for AggregationAnalysis
Blanket Implementations§
§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
§type ArchivedMetadata = ()
type ArchivedMetadata = ()
The archived version of the pointer metadata for this type.
§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
Converts some archived metadata to the pointer metadata for itself.
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more§impl<T> LayoutRaw for T
impl<T> LayoutRaw for T
§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Returns the layout of the type.