Struct tidb_query_executors::table_scan_executor::TableScanExecutorImpl[][src]

struct TableScanExecutorImpl {
    context: EvalContext,
    schema: Vec<FieldType>,
    columns_default_value: Vec<Vec<u8>>,
    column_id_index: HashMap<i64, usize>,
    handle_indices: SmallVec<[usize; 2]>,
    primary_column_ids: Vec<i64>,
    is_column_filled: Vec<bool>,
}

Fields

context: EvalContext

Note: Although called EvalContext, it is some kind of execution context instead.

schema: Vec<FieldType>

The schema of the output. All of the output come from specific columns in the underlying storage.

columns_default_value: Vec<Vec<u8>>

The default value of corresponding columns in the schema. When column data is missing, the default value will be used to fill the output.

column_id_index: HashMap<i64, usize>

The output position in the schema giving the column id.

handle_indices: SmallVec<[usize; 2]>

Vec of indices in output row to put the handle. The indices must be sorted in the vec.

primary_column_ids: Vec<i64>

Vec of Primary key column’s IDs.

is_column_filled: Vec<bool>

A vector of flags indicating whether corresponding column is filled in next_batch. It is a struct level field in order to prevent repeated memory allocations since its length is fixed for each next_batch call.

Implementations

impl TableScanExecutorImpl[src]

fn process_v1(
    &mut self,
    key: &[u8],
    value: &[u8],
    columns: &mut LazyBatchColumnVec,
    decoded_columns: &mut usize
) -> Result<()>
[src]

fn process_v2(
    &mut self,
    value: &[u8],
    columns: &mut LazyBatchColumnVec,
    decoded_columns: &mut usize
) -> Result<()>
[src]

Trait Implementations

impl ScanExecutorImpl for TableScanExecutorImpl[src]

fn build_column_vec(&self, scan_rows: usize) -> LazyBatchColumnVec[src]

Constructs empty columns, with PK in decoded format and the rest in raw format.

Auto Trait Implementations

impl RefUnwindSafe for TableScanExecutorImpl

impl Send for TableScanExecutorImpl

impl Sync for TableScanExecutorImpl

impl Unpin for TableScanExecutorImpl

impl UnwindSafe for TableScanExecutorImpl

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<V, W> ConvertFrom<W> for V where
    W: ConvertTo<V>, 
[src]

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]

impl<T> Pointable for T[src]

type Init = T

The type for initializers.

impl<T> Same<T> for T[src]

type Output = T

Should always be Self

impl<T> Sealed<T> for T where
    T: ?Sized
[src]

impl<T> SendSyncUnwindSafe for T where
    T: Send + Sync + UnwindSafe + ?Sized
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<V, T> VZip<V> for T where
    V: MultiLane<T>, 
[src]