pub trait ExecutorAdapter {
// Required method
fn execute(&self, plan: &PhysicalPlan) -> ChrysoResult<QueryResult>;
// Provided methods
fn execute_with_params(
&self,
plan: &PhysicalPlan,
params: &[ParamValue],
) -> ChrysoResult<QueryResult> { ... }
fn capabilities(&self) -> AdapterCapabilities { ... }
fn validate_plan(&self, plan: &PhysicalPlan) -> ChrysoResult<()> { ... }
}