Struct tidb_query_executors::index_scan_executor::IndexScanExecutorImpl[][src]

struct IndexScanExecutorImpl {
    context: EvalContext,
    schema: Vec<FieldType>,
    columns_id_without_handle: Vec<i64>,
    columns_id_for_common_handle: Vec<i64>,
    decode_handle_strategy: DecodeHandleStrategy,
    pid_column_cnt: usize,
    index_version: i64,
}

Fields

context: EvalContext

See TableScanExecutorImpl’s context.

schema: Vec<FieldType>

See TableScanExecutorImpl’s schema.

columns_id_without_handle: Vec<i64>

ID of interested columns (exclude PK handle column).

columns_id_for_common_handle: Vec<i64>decode_handle_strategy: DecodeHandleStrategy

The strategy to decode handles. Handle will be always placed in the last column.

pid_column_cnt: usize

Number of partition ID columns, now it can only be 0 or 1.

index_version: i64

Implementations

impl IndexScanExecutorImpl[src]

fn decode_int_handle_from_value(&self, value: &[u8]) -> Result<i64>[src]

fn decode_int_handle_from_key(&self, key: &[u8]) -> Result<i64>[src]

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

fn extract_columns_from_datum_format(
    datum: &mut &[u8],
    columns: &mut [LazyBatchColumn]
) -> Result<()>
[src]

fn process_old_collation_kv(
    &mut self,
    key_payload: &[u8],
    value: &[u8],
    columns: &mut LazyBatchColumnVec
) -> Result<()>
[src]

fn restore_original_data<'a>(
    &self,
    restored_values: &[u8],
    column_iter: impl Iterator<Item = (&'a FieldType, &'a i64, &'a mut LazyBatchColumn)>
) -> Result<()>
[src]

fn get_index_version(value: &[u8]) -> Result<i64>[src]

fn process_kv_general(
    &mut self,
    key_payload: &[u8],
    value: &[u8],
    columns: &mut LazyBatchColumnVec
) -> Result<()>
[src]

fn build_operations<'a, 'b>(
    &'b self,
    key_payload: &'a [u8],
    index_value: &'a [u8]
) -> Result<(DecodeHandleOp<'a>, DecodePartitionIdOp<'a>, RestoreData<'a>)>
[src]

fn decode_index_columns(
    &mut self,
    key_payload: &[u8],
    columns: &mut LazyBatchColumnVec,
    restore_data: RestoreData<'_>
) -> Result<()>
[src]

fn decode_handle_columns(
    &mut self,
    decode_handle: DecodeHandleOp<'_>,
    columns: &mut LazyBatchColumnVec,
    restore_data: RestoreData<'_>
) -> Result<()>
[src]

fn decode_pid_columns(
    &mut self,
    columns: &mut LazyBatchColumnVec,
    decode_pid: DecodePartitionIdOp<'_>
) -> Result<()>
[src]

fn split_common_handle(value: &[u8]) -> Result<(&[u8], &[u8])>[src]

fn split_partition_id(value: &[u8]) -> Result<(&[u8], &[u8])>[src]

fn split_restore_data(value: &[u8]) -> Result<(&[u8], &[u8])>[src]

Trait Implementations

impl ScanExecutorImpl for IndexScanExecutorImpl[src]

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

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

Note: the structure of the constructed column is the same as table scan executor but due to different reasons.

Auto Trait Implementations

impl RefUnwindSafe for IndexScanExecutorImpl

impl Send for IndexScanExecutorImpl

impl Sync for IndexScanExecutorImpl

impl Unpin for IndexScanExecutorImpl

impl UnwindSafe for IndexScanExecutorImpl

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]