pub struct StreamingQueryResult { /* private fields */ }Implementations§
Source§impl StreamingQueryResult
impl StreamingQueryResult
Sourcepub fn new(stream: ResultStream, runtime: Arc<ExecutionRuntime>) -> Self
pub fn new(stream: ResultStream, runtime: Arc<ExecutionRuntime>) -> Self
Wrap a ResultStream into a thread-safe handle.
Sourcepub fn new_with_schema(
stream: ResultStream,
runtime: Arc<ExecutionRuntime>,
col_names: Vec<String>,
) -> Self
pub fn new_with_schema( stream: ResultStream, runtime: Arc<ExecutionRuntime>, col_names: Vec<String>, ) -> Self
Wrap a stream with the schema fixed by the physical output contract. This keeps empty results observable without waiting for a first chunk.
Sourcepub fn from_execution_result(result: ExecutionResult) -> Self
pub fn from_execution_result(result: ExecutionResult) -> Self
Create a pre-materialized result from an ExecutionResult.
The result is returned as a single chunk on the first next_chunk() call.
Useful for EXPLAIN/PROFILE results that are already materialized.
Sourcepub fn next_chunk(&self) -> Result<Option<DataChunk>, QueryError>
pub fn next_chunk(&self) -> Result<Option<DataChunk>, QueryError>
Pull the next chunk of results.
Returns Ok(None) when the stream is exhausted.
Returns an error if the query has been cancelled.
Sourcepub fn is_cancelled(&self) -> bool
pub fn is_cancelled(&self) -> bool
Check whether the query has been cancelled.
Sourcepub fn close(&self) -> Result<(), QueryError>
pub fn close(&self) -> Result<(), QueryError>
Close the stream and release resources.
Sourcepub fn collect(&self) -> Result<DataSet, QueryError>
pub fn collect(&self) -> Result<DataSet, QueryError>
Consume all remaining chunks and materialise into a DataSet.
Routes through LocalChunkCollector, the single terminal collection
logic shared with convert_chunks_to_dataset and ResultStream::collect.
Sourcepub fn column_names(&self) -> Option<Vec<String>>
pub fn column_names(&self) -> Option<Vec<String>>
Return column names if known.
For materialized results, column names are available immediately.
For streaming results, they are available after the first chunk is
pulled (or None if no chunk was ever produced).
Sourcepub fn runtime(&self) -> &ExecutionRuntime
pub fn runtime(&self) -> &ExecutionRuntime
Access the underlying execution runtime (for profiling, cancel, etc.)
Sourcepub fn runtime_downgrade(&self) -> Weak<ExecutionRuntime>
pub fn runtime_downgrade(&self) -> Weak<ExecutionRuntime>
Return a Weak reference to the execution runtime for KILL QUERY registration.
Sourcepub fn set_on_drop(&self, f: Box<dyn FnOnce() + Send>)
pub fn set_on_drop(&self, f: Box<dyn FnOnce() + Send>)
Register a cleanup callback that fires when this handle is dropped.
Used by the API layer to deregister the query from the session when the stream ends (via either completion, error, or client disconnect).
Sourcepub fn set_transaction_finalizer(
&self,
commit: Box<dyn FnOnce() + Send>,
abort: Box<dyn FnOnce() + Send>,
)
pub fn set_transaction_finalizer( &self, commit: Box<dyn FnOnce() + Send>, abort: Box<dyn FnOnce() + Send>, )
Register a transaction finalizer that fires when the stream is dropped.
commit: called when the stream is fully consumed without error.abort: called on error, cancellation, or premature drop.
Only one finalizer can be registered. The on_drop callback is used
internally to invoke the appropriate branch.
Sourcepub fn set_transaction_finalizer_with_result(
&self,
commit: Box<dyn FnOnce() -> Result<(), String> + Send>,
abort: Box<dyn FnOnce() -> Result<(), String> + Send>,
)
pub fn set_transaction_finalizer_with_result( &self, commit: Box<dyn FnOnce() -> Result<(), String> + Send>, abort: Box<dyn FnOnce() -> Result<(), String> + Send>, )
Register a finalizer whose error is returned at stream exhaustion.
A finalizer triggered by Drop logs the error because no result can be
returned after ownership has been released.
Sourcepub fn set_fallback_column_names(&self, names: Vec<String>)
pub fn set_fallback_column_names(&self, names: Vec<String>)
Set fallback column names that are available even before the first chunk is pulled (or when the result set is empty).
Only takes effect when no chunk has been received yet (i.e. the
cached column names are None). Once a chunk arrives its column
names take precedence and the fallback is ignored.
Trait Implementations§
Source§impl Clone for StreamingQueryResult
impl Clone for StreamingQueryResult
Source§impl Drop for StreamingQueryResult
impl Drop for StreamingQueryResult
Auto Trait Implementations§
impl !RefUnwindSafe for StreamingQueryResult
impl !UnwindSafe for StreamingQueryResult
impl Freeze for StreamingQueryResult
impl Send for StreamingQueryResult
impl Sync for StreamingQueryResult
impl Unpin for StreamingQueryResult
impl UnsafeUnpin for StreamingQueryResult
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> FmtForward for T
impl<T> FmtForward for T
Source§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
self to use its Binary implementation when Debug-formatted.Source§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
self to use its Display implementation when
Debug-formatted.Source§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
self to use its LowerExp implementation when
Debug-formatted.Source§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
self to use its LowerHex implementation when
Debug-formatted.Source§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
self to use its Octal implementation when Debug-formatted.Source§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
self to use its Pointer implementation when
Debug-formatted.Source§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
self to use its UpperExp implementation when
Debug-formatted.Source§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
self to use its UpperHex implementation when
Debug-formatted.Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> 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 moreSource§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
Source§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
Source§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read moreSource§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read moreSource§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
Source§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
Source§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
self, then passes self.as_ref() into the pipe function.Source§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
self, then passes self.as_mut() into the pipe
function.Source§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
self, then passes self.deref() into the pipe function.Source§impl<T> Pointable for T
impl<T> Pointable for T
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
Source§impl<T> Tap for T
impl<T> Tap for T
Source§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Borrow<B> of a value. Read moreSource§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
BorrowMut<B> of a value. Read moreSource§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
AsRef<R> view of a value. Read moreSource§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
AsMut<R> view of a value. Read moreSource§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Deref::Target of a value. Read moreSource§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Deref::Target of a value. Read moreSource§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap() only in debug builds, and is erased in release builds.Source§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut() only in debug builds, and is erased in release
builds.Source§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
.tap_borrow() only in debug builds, and is erased in release
builds.Source§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
.tap_borrow_mut() only in debug builds, and is erased in release
builds.Source§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
.tap_ref() only in debug builds, and is erased in release
builds.Source§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
.tap_ref_mut() only in debug builds, and is erased in release
builds.Source§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
.tap_deref() only in debug builds, and is erased in release
builds.