pub struct QueryGroup {
pub id: QueryGroupId,
pub query_name: String,
pub args: Arc<Value>,
pub auth_scope: AuthScope,
pub auth_context: AuthContext,
pub table_deps: &'static [&'static str],
pub selected_cols: &'static [&'static str],
pub read_set: ReadSet,
pub last_result_hash: Option<String>,
pub subscribers: Vec<SubscriberId>,
pub created_at: DateTime<Utc>,
pub execution_count: u64,
}Expand description
A query group is the primary unit of execution. Multiple subscribers watching the same query+args+auth_scope share a single group. On invalidation, the query executes once per group (not per subscriber).
Fields§
§id: QueryGroupId§query_name: String§args: Arc<Value>§auth_scope: AuthScope§auth_context: AuthContext§table_deps: &'static [&'static str]Compile-time table dependencies from FunctionInfo.
selected_cols: &'static [&'static str]Compile-time selected columns from FunctionInfo.
read_set: ReadSet§last_result_hash: Option<String>Result hash for delta detection. Shared across all subscribers.
subscribers: Vec<SubscriberId>All subscribers in this group.
created_at: DateTime<Utc>§execution_count: u64Implementations§
Source§impl QueryGroup
impl QueryGroup
Sourcepub fn compute_lookup_key(
query_name: &str,
args: &Value,
auth_scope: &AuthScope,
) -> u64
pub fn compute_lookup_key( query_name: &str, args: &Value, auth_scope: &AuthScope, ) -> u64
Compute the lookup key for dedup: hash of (query_name, args, auth_scope).
Sourcepub fn record_execution(&mut self, read_set: ReadSet, result_hash: String)
pub fn record_execution(&mut self, read_set: ReadSet, result_hash: String)
Record a query execution result.
Sourcepub fn should_invalidate(&self, change: &Change) -> bool
pub fn should_invalidate(&self, change: &Change) -> bool
Check if a change should invalidate this group.
Auto Trait Implementations§
impl Freeze for QueryGroup
impl RefUnwindSafe for QueryGroup
impl Send for QueryGroup
impl Sync for QueryGroup
impl Unpin for QueryGroup
impl UnsafeUnpin for QueryGroup
impl UnwindSafe for QueryGroup
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
Mutably borrows from an owned value. Read more
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 more