pub struct SochQlExecutor { /* private fields */ }Expand description
SOCH-QL Query Executor
When constructed with a StorageBackend, queries read real data from storage.
Without a backend (new()), returns empty result sets (for testing/planning only).
Implementations§
Source§impl SochQlExecutor
impl SochQlExecutor
Sourcepub fn with_storage(storage: Arc<dyn StorageBackend>) -> Self
pub fn with_storage(storage: Arc<dyn StorageBackend>) -> Self
Create an executor wired to a real storage backend
Sourcepub fn execute(&self, query: &str, catalog: &Catalog) -> Result<SochResult>
pub fn execute(&self, query: &str, catalog: &Catalog) -> Result<SochResult>
Execute a SOCH-QL query string
Sourcepub fn validate(&self, query: &SochQuery, catalog: &Catalog) -> Result<()>
pub fn validate(&self, query: &SochQuery, catalog: &Catalog) -> Result<()>
Validate a parsed query against the catalog
Sourcepub fn plan(&self, query: &SochQuery, catalog: &Catalog) -> Result<QueryPlan>
pub fn plan(&self, query: &SochQuery, catalog: &Catalog) -> Result<QueryPlan>
Generate a query plan
Sourcepub fn execute_plan(
&self,
plan: &QueryPlan,
catalog: &Catalog,
) -> Result<SochResult>
pub fn execute_plan( &self, plan: &QueryPlan, catalog: &Catalog, ) -> Result<SochResult>
Execute a query plan
When a StorageBackend is present, this reads real data from storage.
Without one, returns empty result sets (legacy behavior).
Trait Implementations§
Auto Trait Implementations§
impl !RefUnwindSafe for SochQlExecutor
impl !UnwindSafe for SochQlExecutor
impl Freeze for SochQlExecutor
impl Send for SochQlExecutor
impl Sync for SochQlExecutor
impl Unpin for SochQlExecutor
impl UnsafeUnpin for SochQlExecutor
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more