#[non_exhaustive]pub enum IsolationLevel {
Unspecified,
Serializable,
RepeatableRead,
UnknownValue(UnknownValue),
}Expand description
IsolationLevel is used when setting the isolation
level for a
transaction.
§Working with unknown values
This enum is defined as #[non_exhaustive] because Google Cloud may add
additional enum variants at any time. Adding new variants is not considered
a breaking change. Applications should write their code in anticipation of:
- New values appearing in future releases of the client library, and
- New values received dynamically, without application changes.
Please consult the Working with enums section in the user guide for some guidelines.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Unspecified
Default value.
If the value is not specified, the SERIALIZABLE isolation level is
used.
Serializable
All transactions appear as if they executed in a serial order, even if some of the reads, writes, and other operations of distinct transactions actually occurred in parallel. Spanner assigns commit timestamps that reflect the order of committed transactions to implement this property. Spanner offers a stronger guarantee than serializability called external consistency. For more information, see TrueTime and external consistency.
RepeatableRead
All reads performed during the transaction observe a consistent snapshot
of the database, and the transaction is only successfully committed in
the absence of conflicts between its updates and any concurrent updates
that have occurred since that snapshot. Consequently, in contrast to
SERIALIZABLE transactions, only write-write conflicts are detected in
snapshot transactions.
This isolation level does not support read-only and partitioned DML transactions.
When REPEATABLE_READ is specified on a read-write transaction, the
locking semantics default to OPTIMISTIC.
UnknownValue(UnknownValue)
If set, the enum was initialized with an unknown value.
Applications can examine the value using IsolationLevel::value or IsolationLevel::name.
Implementations§
Trait Implementations§
Source§impl Clone for IsolationLevel
impl Clone for IsolationLevel
Source§fn clone(&self) -> IsolationLevel
fn clone(&self) -> IsolationLevel
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for IsolationLevel
impl Debug for IsolationLevel
Source§impl Default for IsolationLevel
impl Default for IsolationLevel
Source§impl<'de> Deserialize<'de> for IsolationLevel
impl<'de> Deserialize<'de> for IsolationLevel
Source§fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>where
D: Deserializer<'de>,
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>where
D: Deserializer<'de>,
Source§impl Display for IsolationLevel
impl Display for IsolationLevel
Source§impl From<&str> for IsolationLevel
impl From<&str> for IsolationLevel
Source§impl From<i32> for IsolationLevel
impl From<i32> for IsolationLevel
Source§impl PartialEq for IsolationLevel
impl PartialEq for IsolationLevel
Source§fn eq(&self, other: &IsolationLevel) -> bool
fn eq(&self, other: &IsolationLevel) -> bool
self and other values to be equal, and is used by ==.Source§impl Serialize for IsolationLevel
impl Serialize for IsolationLevel
impl StructuralPartialEq for IsolationLevel
Auto Trait Implementations§
impl Freeze for IsolationLevel
impl RefUnwindSafe for IsolationLevel
impl Send for IsolationLevel
impl Sync for IsolationLevel
impl Unpin for IsolationLevel
impl UnsafeUnpin for IsolationLevel
impl UnwindSafe for IsolationLevel
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
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> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
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> 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