Struct tidb_query_executors::interface::BatchExecuteResult[][src]

pub struct BatchExecuteResult {
    pub physical_columns: LazyBatchColumnVec,
    pub logical_rows: Vec<usize>,
    pub warnings: EvalWarnings,
    pub is_drained: Result<bool>,
}

Data to be flowed between parent and child executors’ single next_batch() invocation.

Note: there are other data flow between executors, like metrics and output statistics. However they are flowed at once, just before response, instead of each step during execution. Hence they are not covered by this structure. See BatchExecuteMetaData.

It is only Send but not Sync because executor returns its own data copy. However Send enables executors to live in different threads.

It is designed to be used in new generation executors, i.e. executors support batch execution. The old executors will not be refined to return this kind of result.

Fields

physical_columns: LazyBatchColumnVec

The physical columns data generated during this invocation.

Note 1: Empty column data doesn’t mean that there is no more data. See is_drained.

Note 2: This is only a physical store of data. The data may not be in desired order and there could be filtered out data stored inside. You should access the logical data via the logical_rows field. For the same reason, rows_len() > 0 doesn’t mean that there is logical data inside.

logical_rows: Vec<usize>

Valid row offsets in physical_columns, placed in the logical order.

warnings: EvalWarnings

The warnings generated during this invocation.

is_drained: Result<bool>

Whether or not there is no more data.

This structure is a Result. When it is:

Auto Trait Implementations

impl !RefUnwindSafe for BatchExecuteResult

impl Send for BatchExecuteResult

impl Sync for BatchExecuteResult

impl Unpin for BatchExecuteResult

impl !UnwindSafe for BatchExecuteResult

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]