pub struct LiveTableRegistry { /* private fields */ }Expand description
Registry of active live tables and their backing queries.
Internally guarded by an RwLock so concurrent query/contains
calls (the common case for REFRESH LIVE TABLE checks and executor
query lookups) do not serialise against each other. Writes
(register/remove_table) take the write lock. This avoids the
Mutex<LiveTableRegistry> contention seen under fan-out of
parallel SELECT against live tables in a shared
DataFusion SessionContext.
Implementations§
Source§impl LiveTableRegistry
impl LiveTableRegistry
pub fn new() -> Self
Sourcepub fn try_register(
&self,
name: impl Into<String>,
query: impl Into<String>,
) -> Result<bool, SqlError>
pub fn try_register( &self, name: impl Into<String>, query: impl Into<String>, ) -> Result<bool, SqlError>
Returns true if the write lock would succeed without blocking.
Callers using RwLock semantics may use this to diagnose stalls.
pub fn register( &self, name: impl Into<String>, query: impl Into<String>, ) -> Result<(), SqlError>
pub fn remove_table(&self, name: &str) -> SqlResult<bool>
pub fn contains(&self, name: &str) -> SqlResult<bool>
pub fn query(&self, name: &str) -> SqlResult<Option<String>>
Trait Implementations§
Source§impl Debug for LiveTableRegistry
impl Debug for LiveTableRegistry
Source§impl Default for LiveTableRegistry
impl Default for LiveTableRegistry
Source§fn default() -> LiveTableRegistry
fn default() -> LiveTableRegistry
Returns the “default value” for a type. Read more
Auto Trait Implementations§
impl !Freeze for LiveTableRegistry
impl RefUnwindSafe for LiveTableRegistry
impl Send for LiveTableRegistry
impl Sync for LiveTableRegistry
impl Unpin for LiveTableRegistry
impl UnsafeUnpin for LiveTableRegistry
impl UnwindSafe for LiveTableRegistry
Blanket Implementations§
impl<T> Allocation for T
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
Mutably borrows from an owned value. Read more
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
Source§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
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>
Converts
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>
Converts
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> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::Request