pub(crate) mod canonical;
pub(in crate::db) mod execution_contract;
pub(crate) mod lowering;
pub(crate) mod path;
pub(crate) mod plan;
pub(in crate::db) mod shape_facts;
pub(crate) mod validate;
pub(in crate::db) use crate::db::index::SemanticIndexExpression;
pub(in crate::db) use canonical::normalize_access_plan_value;
pub(in crate::db) use path::{
AccessPath, IndexBranchSetSpec, MAX_INDEX_BRANCH_SET_VALUES, SemanticIndexAccessContract,
SemanticIndexKeyItemRef, SemanticIndexKeyItemsRef, SemanticIndexRangeSpec,
};
pub(in crate::db) use plan::AccessPlan;
pub(crate) use validate::AccessPlanError;
pub(in crate::db) use validate::validate_access_runtime_invariants_with_schema;
pub(in crate::db) use path::AccessPathKind;
pub(in crate::db) use shape_facts::{
AccessShapeFacts, IndexShapeDetails, SinglePathAccessShapeFacts,
};
pub(in crate::db) use execution_contract::{
ExecutableAccessNode, ExecutableAccessPlan, ExecutionPathPayload,
};
pub(in crate::db) use lowering::{
LoweredAccessError, LoweredIndexPrefixSpec, LoweredIndexRangeSpec, LoweredIndexScanContract,
LoweredKey, lower_access_with_schema_info,
};
#[cfg(feature = "sql")]
pub(in crate::db) use lowering::{
LoweredIndexPrefixCardinalitySpec, lower_exact_index_prefix_cardinality_specs_for_prefix_access,
};