use crate::db::query::plan::{
LoadSpec, validate::FluentLoadPolicyViolation,
validate::cursor_policy::validate_cursor_paging_requirements,
};
pub(crate) const fn validate_fluent_non_paged_mode(
has_cursor_token: bool,
has_grouping: bool,
) -> Result<(), FluentLoadPolicyViolation> {
if has_cursor_token && !has_grouping {
return Err(FluentLoadPolicyViolation::cursor_requires_paged_execution());
}
Ok(())
}
pub(crate) fn validate_fluent_paged_mode(
has_grouping: bool,
has_explicit_order: bool,
spec: Option<LoadSpec>,
) -> Result<(), FluentLoadPolicyViolation> {
if has_grouping {
return Err(FluentLoadPolicyViolation::grouped_requires_direct_execute());
}
match spec {
Some(spec) => validate_cursor_paging_requirements(has_explicit_order, spec)
.map_err(FluentLoadPolicyViolation::from),
None => Ok(()),
}
}