pub enum KvInsertIntent {
Insert,
InsertIfAbsent,
Put,
}Expand description
INSERT-vs-UPSERT intent carried on SqlPlan::KvInsert.
The KV engine’s KvOp::Put is a Redis-SET-style upsert: write wins
unconditionally. SQL requires INSERT to raise unique_violation
on duplicate keys, so the plan must carry the caller’s intent through
to the Data Plane where the hash-index existence probe happens.
Variants§
Insert
Plain INSERT: duplicate key raises SQLSTATE 23505.
InsertIfAbsent
INSERT ... ON CONFLICT DO NOTHING: duplicate key is a no-op.
Put
UPSERT / INSERT ... ON CONFLICT (key) DO UPDATE / RESP SET:
duplicate key overwrites. Also the shape used by the RESP SET path.
Trait Implementations§
Source§impl Clone for KvInsertIntent
impl Clone for KvInsertIntent
Source§fn clone(&self) -> KvInsertIntent
fn clone(&self) -> KvInsertIntent
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for KvInsertIntent
impl Debug for KvInsertIntent
Source§impl PartialEq for KvInsertIntent
impl PartialEq for KvInsertIntent
impl Copy for KvInsertIntent
impl Eq for KvInsertIntent
impl StructuralPartialEq for KvInsertIntent
Auto Trait Implementations§
impl Freeze for KvInsertIntent
impl RefUnwindSafe for KvInsertIntent
impl Send for KvInsertIntent
impl Sync for KvInsertIntent
impl Unpin for KvInsertIntent
impl UnsafeUnpin for KvInsertIntent
impl UnwindSafe for KvInsertIntent
Blanket Implementations§
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
The archived version of the pointer metadata for this type.
Source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
Converts some archived metadata to the pointer metadata for itself.
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
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> 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>
Returns the layout of the type.
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
Returns whether the given value has been niched. Read more
Source§fn resolve_niched(out: Place<NichedOption<T, N1>>)
fn resolve_niched(out: Place<NichedOption<T, N1>>)
Writes data to
out indicating that a T is niched.