pub struct Stash {
pub metrics: Arc<Metrics>,
/* private fields */
}
Expand description
A Stash whose data is stored in a Postgres-compatible database. The format of the tables are not specified and should not be relied upon. The only promise is stability. Any changes to the table schemas will be accompanied by a clear migration path.
Fields§
§metrics: Arc<Metrics>
Implementations§
source§impl Stash
impl Stash
sourcepub async fn clear(url: &str, tls: MakeTlsConnector) -> Result<(), StashError>
pub async fn clear(url: &str, tls: MakeTlsConnector) -> Result<(), StashError>
Drops all tables associated with the stash if they exist. Only used in tests and benchmarks.
sourcepub async fn with_debug_stash<F, T, Fut>(f: F) -> Result<T, StashError>
pub async fn with_debug_stash<F, T, Fut>(f: F) -> Result<T, StashError>
Creates a debug stash from the current COCKROACH_URL with a random
schema, and DROPs it after f
has returned.
pub async fn set_connect_timeout(&mut self, connect_timeout: Duration)
source§impl Stash
impl Stash
sourcepub async fn collections(&mut self) -> Result<BTreeMap<i64, String>, StashError>
pub async fn collections(&mut self) -> Result<BTreeMap<i64, String>, StashError>
Returns a mapping from stash collection Id to stash collection name.
sourcepub async fn confirm_leadership(&mut self) -> Result<(), StashError>
pub async fn confirm_leadership(&mut self) -> Result<(), StashError>
Returns Ok if the stash is the current leader and an error otherwise.
Note: This can be optimized to not increment the version, which is done automatically via
with_commit
. It will probably be more efficient to retry an in-determinate read-only
transaction than relying on incrementing the version.
pub fn is_writeable(&self) -> bool
pub fn is_readonly(&self) -> bool
pub fn is_savepoint(&self) -> bool
pub fn epoch(&self) -> Option<NonZeroI64>
source§impl Stash
impl Stash
sourcepub async fn with_transaction<F, T>(&mut self, f: F) -> Result<T, StashError>where
F: FnOnce(Transaction<'_>) -> BoxFuture<'_, Result<T, StashError>> + Clone + Sync + Send + 'static,
pub async fn with_transaction<F, T>(&mut self, f: F) -> Result<T, StashError>where
F: FnOnce(Transaction<'_>) -> BoxFuture<'_, Result<T, StashError>> + Clone + Sync + Send + 'static,
Transactionally executes closure f
.
Trait Implementations§
Auto Trait Implementations§
impl !RefUnwindSafe for Stash
impl Send for Stash
impl Sync for Stash
impl Unpin for Stash
impl !UnwindSafe for Stash
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> 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
source§impl<T> Pointable for T
impl<T> Pointable for T
source§impl<P, R> ProtoType<R> for Pwhere
R: RustType<P>,
impl<P, R> ProtoType<R> for Pwhere
R: RustType<P>,
source§fn into_rust(self) -> Result<R, TryFromProtoError>
fn into_rust(self) -> Result<R, TryFromProtoError>
RustType::from_proto
.source§fn from_rust(rust: &R) -> P
fn from_rust(rust: &R) -> P
RustType::into_proto
.