pub enum TxnError {
NotFound(TxnId),
AlreadyCommitted(TxnId),
AlreadyAborted(TxnId),
WriteConflict {
key: Vec<u8>,
holder: TxnId,
},
Deadlock(Vec<TxnId>),
LockLimitExceeded {
limit: usize,
},
LockTimeout {
key: Vec<u8>,
timeout: Duration,
},
ValidationFailed {
key: Vec<u8>,
expected_ts: Timestamp,
actual_ts: Timestamp,
},
LogError(String),
SavepointNotFound(String),
Timeout(TxnId),
Internal(String),
}Expand description
Transaction error types
Variants§
NotFound(TxnId)
Transaction not found
AlreadyCommitted(TxnId)
Transaction already committed
AlreadyAborted(TxnId)
Transaction already aborted
WriteConflict
Write-write conflict
Deadlock(Vec<TxnId>)
Deadlock detected
LockLimitExceeded
Lock limit exceeded
LockTimeout
Lock timeout
ValidationFailed
Validation failed (optimistic)
LogError(String)
WAL error
SavepointNotFound(String)
Savepoint not found
Timeout(TxnId)
Transaction timeout
Internal(String)
Internal error
Trait Implementations§
Source§impl Error for TxnError
impl Error for TxnError
1.30.0 · Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
Returns the lower-level source of this error, if any. Read more
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
👎Deprecated since 1.42.0:
use the Display impl or to_string()
Auto Trait Implementations§
impl Freeze for TxnError
impl RefUnwindSafe for TxnError
impl Send for TxnError
impl Sync for TxnError
impl Unpin for TxnError
impl UnsafeUnpin for TxnError
impl UnwindSafe for TxnError
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> 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>
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> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::Request