use crate::db::{executor::ExecutionStrategy, query::explain::ExplainPlan};
pub type TraceExecutionStrategy = ExecutionStrategy;
#[derive(Clone, Debug, Eq, PartialEq)]
pub struct QueryTracePlan {
pub(crate) plan_hash: String,
pub(crate) access_strategy: String,
pub(crate) execution_strategy: Option<TraceExecutionStrategy>,
pub(crate) explain: ExplainPlan,
}
impl QueryTracePlan {
#[must_use]
pub const fn new(
plan_hash: String,
access_strategy: String,
execution_strategy: Option<TraceExecutionStrategy>,
explain: ExplainPlan,
) -> Self {
Self {
plan_hash,
access_strategy,
execution_strategy,
explain,
}
}
#[must_use]
pub const fn plan_hash(&self) -> &str {
self.plan_hash.as_str()
}
#[must_use]
pub const fn access_strategy(&self) -> &str {
self.access_strategy.as_str()
}
#[must_use]
pub const fn execution_strategy(&self) -> Option<TraceExecutionStrategy> {
self.execution_strategy
}
#[must_use]
pub const fn explain(&self) -> &ExplainPlan {
&self.explain
}
}