Struct tidb_query_executors::runner::BatchExecutorsRunner[][src]

pub struct BatchExecutorsRunner<SS> {
    deadline: Deadline,
    out_most_executor: Box<dyn BatchExecutor<StorageStats = SS>>,
    output_offsets: Vec<u32>,
    config: Arc<EvalConfig>,
    collect_exec_summary: bool,
    exec_stats: ExecuteStats,
    stream_row_limit: usize,
    encode_type: EncodeType,
}

Fields

deadline: Deadline

The deadline of this handler. For each check point (e.g. each iteration) we need to check whether or not the deadline is exceeded and break the process if so.

out_most_executor: Box<dyn BatchExecutor<StorageStats = SS>>output_offsets: Vec<u32>

The offset of the columns need to be outputted. For example, TiDB may only needs a subset of the columns in the result so that unrelated columns don’t need to be encoded and returned back.

config: Arc<EvalConfig>collect_exec_summary: bool

Whether or not execution summary need to be collected.

exec_stats: ExecuteStatsstream_row_limit: usize

Maximum rows to return in batch stream mode.

encode_type: EncodeType

The encoding method for the response. Possible encoding methods are:

  1. default: result is encoded row by row using datum format.
  2. chunk: result is encoded column by column using chunk format.

Implementations

impl BatchExecutorsRunner<()>[src]

pub fn check_supported(exec_descriptors: &[Executor]) -> Result<()>[src]

Given a list of executor descriptors and checks whether all executor descriptors can be used to build batch executors.

impl<SS: 'static> BatchExecutorsRunner<SS>[src]

pub fn from_request<S: Storage<Statistics = SS> + 'static>(
    req: DagRequest,
    ranges: Vec<KeyRange>,
    storage: S,
    deadline: Deadline,
    stream_row_limit: usize,
    is_streaming: bool
) -> Result<Self>
[src]

fn batch_initial_size() -> usize[src]

pub async fn handle_request(&mut self) -> Result<SelectResponse>[src]

pub fn handle_streaming_request(
    &mut self
) -> Result<(Option<(StreamResponse, IntervalRange)>, bool)>
[src]

pub fn collect_storage_stats(&mut self, dest: &mut SS)[src]

pub fn can_be_cached(&self) -> bool[src]

fn internal_handle_request(
    &mut self,
    is_streaming: bool,
    batch_size: usize,
    chunk: &mut Chunk,
    warnings: &mut EvalWarnings,
    ctx: &mut EvalContext
) -> Result<(bool, usize)>
[src]

fn make_stream_response(
    &mut self,
    chunk: Chunk,
    warnings: EvalWarnings
) -> Result<StreamResponse>
[src]

Auto Trait Implementations

impl<SS> !RefUnwindSafe for BatchExecutorsRunner<SS>

impl<SS> Send for BatchExecutorsRunner<SS>

impl<SS> !Sync for BatchExecutorsRunner<SS>

impl<SS> Unpin for BatchExecutorsRunner<SS>

impl<SS> !UnwindSafe for BatchExecutorsRunner<SS>

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, 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]