mod cursor_policy;
mod errors;
pub(in crate::db::query) mod grouped;
mod intent_policy;
mod order;
mod plan_shape;
mod semantic_gates;
mod symbols;
pub(in crate::db) use cursor_policy::validate_cursor_order_plan_shape;
pub(in crate::db) use errors::CursorOrderPlanShapeError;
pub use errors::PlanError;
pub(crate) use errors::{
ExprPlanError, ExprPlanTypeClass, GroupPlanError, OrderPlanError, PolicyPlanError,
};
#[cfg(test)]
pub(crate) use errors::{PlanPolicyError, PlanUserError};
pub(in crate::db::query) use intent_policy::validate_intent_plan_shape;
pub(in crate::db::query) use plan_shape::validate_plan_shape;
pub(in crate::db::query) use semantic_gates::{
validate_group_query_semantics_with_schema, validate_query_semantics_with_schema,
};
#[cfg(feature = "sql")]
pub(in crate::db) use symbols::resolve_aggregate_target_field_slot_with_schema;
pub(in crate::db::query::plan::validate) use symbols::resolve_group_aggregate_target_field_type;
pub(in crate::db) use symbols::resolve_group_field_slot_with_schema;