Struct tidb_query_common::storage::scanner::RangesScanner [−][src]
A scanner that scans over multiple ranges. Each range can be a point range containing only one row, or an interval range containing multiple rows.
Fields
storage: T
ranges_iter: RangesIterator
scan_backward_in_range: bool
is_key_only: bool
scanned_rows_per_range: Vec<usize>
is_scanned_range_aware: bool
current_range: IntervalRange
working_range_begin_key: Vec<u8>
working_range_end_key: Vec<u8>
Implementations
impl<T: Storage> RangesScanner<T>
[src][−]
pub fn new(_: RangesScannerOptions<T>) -> RangesScanner<T>
[src]
pub fn next(&mut self) -> Result<Option<OwnedKvPair>, StorageError>
[src][−]
Fetches next row.
pub fn collect_storage_stats(&mut self, dest: &mut T::Statistics)
[src][−]
Appends storage statistics collected so far to the given container and clears the collected statistics.
pub fn collect_scanned_rows_per_range(&mut self, dest: &mut Vec<usize>)
[src][−]
Appends scanned rows of each range so far to the given container and clears the collected statistics.
pub fn take_scanned_range(&mut self) -> IntervalRange
[src][−]
Returns scanned range since last call.
pub fn can_be_cached(&self) -> bool
[src]
fn update_scanned_range_from_new_point(&mut self, point: &PointRange)
[src]
fn update_scanned_range_from_new_range(&mut self, range: &IntervalRange)
[src]
fn update_working_range_begin_key(&mut self)
[src]
fn update_working_range_end_key(&mut self)
[src]
fn update_scanned_range_from_scanned_row(
&mut self,
some_row: &Option<OwnedKvPair>
)
[src]
&mut self,
some_row: &Option<OwnedKvPair>
)
Auto Trait Implementations
impl<T> RefUnwindSafe for RangesScanner<T> where
T: RefUnwindSafe,
T: RefUnwindSafe,
impl<T> Send for RangesScanner<T> where
T: Send,
T: Send,
impl<T> Sync for RangesScanner<T> where
T: Sync,
T: Sync,
impl<T> Unpin for RangesScanner<T> where
T: Unpin,
T: Unpin,
impl<T> UnwindSafe for RangesScanner<T> where
T: UnwindSafe,
T: UnwindSafe,
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src][+]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src][+]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src][+]
T: ?Sized,
impl<T> From<T> for T
[src][+]
impl<T> Instrument for T
[src][+]
impl<T, U> Into<U> for T where
U: From<T>,
[src][+]
U: From<T>,
impl<T> Pointable for T
[src][+]
impl<T> Same<T> for T
[src]
type Output = T
Should always be Self
impl<T> Sealed<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> SendSyncUnwindSafe for T where
T: Send + Sync + UnwindSafe + ?Sized,
[src]
T: Send + Sync + UnwindSafe + ?Sized,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src][+]
U: Into<T>,
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src][+]
U: TryFrom<T>,
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
[src][+]
V: MultiLane<T>,