pub struct HotUpdateInputs<'a> {
pub collection: &'a str,
pub indexed_columns: &'a HashSet<String>,
pub modified_columns: &'a HashSet<String>,
pub new_tuple_size: usize,
pub page_free_space: usize,
}Expand description
Everything decide needs to pick between HOT and the fallback
DELETE+INSERT path.
Fields§
§collection: &'a strName of the target collection — diagnostic only. Included so
the returned indexed_blocker diagnostic can be self-contained.
indexed_columns: &'a HashSet<String>Every column covered by any secondary index on the collection. Pulled from the index registry by the caller.
modified_columns: &'a HashSet<String>Columns this UPDATE’s SET clause actually mutates. A column listed but set to its current value still counts as modified — PG’s HOT decision is syntactic, not value-comparing.
new_tuple_size: usizeSerialized size (bytes) of the new tuple. Used against
page_free_space to decide same-page fit.
page_free_space: usizeFree bytes on the old tuple’s page after removing the old
tuple. new_tuple_size <= page_free_space is the fit test.
Callers can pass usize::MAX to skip the page-fit check
(useful when the storage layer guarantees in-place replace).
Trait Implementations§
Source§impl<'a> Clone for HotUpdateInputs<'a>
impl<'a> Clone for HotUpdateInputs<'a>
Source§fn clone(&self) -> HotUpdateInputs<'a>
fn clone(&self) -> HotUpdateInputs<'a>
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
impl<'a> Freeze for HotUpdateInputs<'a>
impl<'a> RefUnwindSafe for HotUpdateInputs<'a>
impl<'a> Send for HotUpdateInputs<'a>
impl<'a> Sync for HotUpdateInputs<'a>
impl<'a> Unpin for HotUpdateInputs<'a>
impl<'a> UnsafeUnpin for HotUpdateInputs<'a>
impl<'a> UnwindSafe for HotUpdateInputs<'a>
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request