use crate::db::executor::{
aggregate::capability::AggregateFieldExtremaIneligibilityReason, route::LoadOrderRouteContract,
};
pub(in crate::db::executor) type FieldExtremaIneligibilityReason =
AggregateFieldExtremaIneligibilityReason;
#[expect(clippy::struct_excessive_bools)]
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
pub(in crate::db::executor) struct RouteCapabilities {
pub(in crate::db::executor) load_order_route_contract: LoadOrderRouteContract,
pub(in crate::db::executor) pk_order_fast_path_eligible: bool,
pub(in crate::db::executor) desc_physical_reverse_supported: bool,
pub(in crate::db::executor) count_pushdown_shape_supported: bool,
pub(in crate::db::executor) count_pushdown_existing_rows_shape_supported: bool,
pub(in crate::db::executor) index_range_limit_pushdown_shape_supported: bool,
pub(in crate::db::executor) composite_aggregate_fast_path_eligible: bool,
pub(in crate::db::executor) bounded_probe_hint_safe: bool,
pub(in crate::db::executor) field_min_fast_path_eligible: bool,
pub(in crate::db::executor) field_max_fast_path_eligible: bool,
pub(in crate::db::executor) field_min_fast_path_ineligibility_reason:
Option<FieldExtremaIneligibilityReason>,
pub(in crate::db::executor) field_max_fast_path_ineligibility_reason:
Option<FieldExtremaIneligibilityReason>,
}