use crate::db::{
executor::{
EntityAuthority, planning::preparation::covering_strict_predicate_compatible_for_plan,
},
query::plan::{AccessPlannedQuery, CoveringReadExecutionPlan},
};
pub(in crate::db::executor) fn derive_load_terminal_fast_path_contract(
authority: EntityAuthority,
plan: &AccessPlannedQuery,
strict_predicate_compatible: bool,
) -> Option<CoveringReadExecutionPlan> {
authority.covering_read_execution_plan(plan, strict_predicate_compatible)
}
pub(in crate::db::executor) fn derive_load_terminal_fast_path_contract_for_plan(
authority: EntityAuthority,
plan: &AccessPlannedQuery,
) -> Option<CoveringReadExecutionPlan> {
if !plan.scalar_plan().mode.is_load() {
return None;
}
let strict_predicate_compatible = covering_strict_predicate_compatible_for_plan(plan);
derive_load_terminal_fast_path_contract(authority, plan, strict_predicate_compatible)
}