pub struct KvInsertPlan {
pub collection: String,
pub entries: Vec<(SqlValue, Vec<(String, SqlValue)>)>,
pub ttl_secs: u64,
pub intent: KvInsertIntent,
pub on_conflict_updates: Vec<(String, SqlExpr)>,
pub volatile_defaults: bool,
}Expand description
Per-family payloads of the larger SqlPlan variants.
Per-family payloads of the larger SqlPlan variants.
Per-family payloads of the larger SqlPlan variants.
Payload of SqlPlan::KvInsert.
Fields§
§collection: String§entries: Vec<(SqlValue, Vec<(String, SqlValue)>)>§ttl_secs: u64TTL in seconds (0 = no expiry). Extracted from ttl column if present.
intent: KvInsertIntentINSERT-vs-UPSERT distinction. KvOp::Put is a Redis-SET-style
upsert by design; to honor SQL INSERT semantics the planner must
tell the converter whether a duplicate key should raise (plain
INSERT, Insert), be silently skipped (ON CONFLICT DO NOTHING,
InsertIfAbsent), or overwrite (UPSERT / ON CONFLICT DO UPDATE, Put).
on_conflict_updates: Vec<(String, SqlExpr)>ON CONFLICT (key) DO UPDATE SET field = expr assignments, carried
through when intent == Put via the ON-CONFLICT-DO-UPDATE path.
Empty for plain UPSERT (whole-value overwrite) and for INSERT
variants.
volatile_defaults: boolWhether any DEFAULT materialized into entries came from a
Volatile expression. The key-value planner evaluates declared
defaults while building this plan, so a cached plan would replay
one execution’s value; a volatile plan is never cached.
Trait Implementations§
Source§impl Clone for KvInsertPlan
impl Clone for KvInsertPlan
Auto Trait Implementations§
impl Freeze for KvInsertPlan
impl RefUnwindSafe for KvInsertPlan
impl Send for KvInsertPlan
impl Sync for KvInsertPlan
impl Unpin for KvInsertPlan
impl UnsafeUnpin for KvInsertPlan
impl UnwindSafe for KvInsertPlan
Blanket Implementations§
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
Source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
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,
impl<T> ErasedDestructor for Twhere
T: 'static,
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> LayoutRaw for T
impl<T> LayoutRaw for T
Source§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Source§impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
Source§unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
Source§fn resolve_niched(out: Place<NichedOption<T, N1>>)
fn resolve_niched(out: Place<NichedOption<T, N1>>)
out indicating that a T is niched.Source§impl<T> Pointable for T
impl<T> Pointable for T
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.