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][+]