pub struct MergeQueryResult {
pub stream: Pin<Box<dyn RecordBatchStream<Item = Result<RecordBatch, DataFusionError>> + Send>>,
pub ordering_honored: bool,
}Expand description
The outcome of running a merge query.
Fields§
§stream: Pin<Box<dyn RecordBatchStream<Item = Result<RecordBatch, DataFusionError>> + Send>>The merged rows.
ordering_honored: boolWhether the merger’s declared scan ordering (if any) was honored by the physical plan
without falling back to a buffering Sort node. Always true for the concatenate
strategy’s undeclared shape (ScanOrdering::Unordered) – there is no declared ordering to
defeat – and only ever computed dynamically for the two strategies that declare one. This
drives only a memory-regression warning; it never gates the recorded sort_order (see
View::get_merged_partition_sort_order).
For the sort-merge strategy (ScanOrdering::PerFile), a surviving SortPreservingMergeExec
is the expected operator, not a regression – only a surviving SortExec means the
streaming shape was lost. For the concatenate strategy’s declared shape
(ScanOrdering::Concatenated), either operator surviving is a regression.
Auto Trait Implementations§
impl !RefUnwindSafe for MergeQueryResult
impl !Sync for MergeQueryResult
impl !UnwindSafe for MergeQueryResult
impl Freeze for MergeQueryResult
impl Send for MergeQueryResult
impl Unpin for MergeQueryResult
impl UnsafeUnpin for MergeQueryResult
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
§impl<T> FutureExt for T
impl<T> FutureExt for T
§fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
§fn with_current_context(self) -> WithContext<Self> ⓘ
fn with_current_context(self) -> WithContext<Self> ⓘ
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request§impl<L> LayerExt<L> for L
impl<L> LayerExt<L> for L
§fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
Layered].