pub enum ScanPlan {
SeqScan {
table: String,
filter: Option<String>,
},
ParallelSeqScan {
table: String,
filter: Option<String>,
workers: usize,
},
PkLookup {
table: String,
pk_column: String,
pk_value: String,
},
IndexScan {
table: String,
index_name: String,
column: String,
condition: String,
},
MultiIndexScan {
table: String,
indexes: Vec<(String, String, String)>,
operation: String,
},
CompositeIndexScan {
table: String,
index_name: String,
columns: Vec<String>,
conditions: Vec<String>,
},
}Expand description
Describes the access method that will be used for a table scan
This is used by EXPLAIN to show users how their queries will be executed.
Variants§
SeqScan
Sequential scan - reads all rows and applies filter in memory
ParallelSeqScan
Parallel sequential scan - reads all rows and filters in parallel across workers
PkLookup
Primary key lookup - O(1) direct access by primary key
IndexScan
Index scan - uses an index to find matching rows
MultiIndexScan
Multi-index scan - uses multiple indexes with AND/OR operations
CompositeIndexScan
Composite index scan - uses a multi-column index
Trait Implementations§
Auto Trait Implementations§
impl Freeze for ScanPlan
impl RefUnwindSafe for ScanPlan
impl Send for ScanPlan
impl Sync for ScanPlan
impl Unpin for ScanPlan
impl UnwindSafe for ScanPlan
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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 moreSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> ToCompactString for Twhere
T: Display,
impl<T> ToCompactString for Twhere
T: Display,
Source§fn try_to_compact_string(&self) -> Result<CompactString, ToCompactStringError>
fn try_to_compact_string(&self) -> Result<CompactString, ToCompactStringError>
Fallible version of
ToCompactString::to_compact_string() Read moreSource§fn to_compact_string(&self) -> CompactString
fn to_compact_string(&self) -> CompactString
Converts the given value to a
CompactString. Read more