Expand description
ReadOnlyTransaction provides a snapshot transaction with guaranteed consistency across reads, but does not allow writes. Read-only transactions can be configured to read at timestamps in the past.
Read-only transactions do not take locks. Instead, they work by choosing a Cloud Spanner timestamp, then executing all reads at that timestamp. Since they do not acquire locks, they do not block concurrent read-write transactions.
Unlike locking read-write transactions, read-only transactions never abort. They can fail if the chosen read timestamp is garbage collected; however, the default garbage collection policy is generous enough that most applications do not need to worry about this in practice. See the documentation of TimestampBound for more details.
Fields
rts: Option<DateTime<Utc>>Implementations
sourceimpl ReadOnlyTransaction
impl ReadOnlyTransaction
pub async fn single(
session: ManagedSession,
tb: TimestampBound
) -> Result<ReadOnlyTransaction, Status>
sourcepub async fn begin(
session: ManagedSession,
tb: TimestampBound,
options: CallOptions
) -> Result<ReadOnlyTransaction, Status>
pub async fn begin(
session: ManagedSession,
tb: TimestampBound,
options: CallOptions
) -> Result<ReadOnlyTransaction, Status>
begin starts a snapshot read-only Transaction on Cloud Spanner.
Methods from Deref<Target = Transaction>
sourcepub async fn query(
&mut self,
statement: Statement
) -> Result<RowIterator<'_>, Status>
pub async fn query(
&mut self,
statement: Statement
) -> Result<RowIterator<'_>, Status>
query executes a query against the database. It returns a RowIterator for retrieving the resulting rows.
query returns only row data, without a query plan or execution statistics.
sourcepub async fn query_with_option(
&mut self,
statement: Statement,
options: QueryOptions
) -> Result<RowIterator<'_>, Status>
pub async fn query_with_option(
&mut self,
statement: Statement,
options: QueryOptions
) -> Result<RowIterator<'_>, Status>
query executes a query against the database. It returns a RowIterator for retrieving the resulting rows.
query returns only row data, without a query plan or execution statistics.
sourcepub async fn read(
&mut self,
table: &str,
columns: &[&str],
key_set: impl Into<KeySet>
) -> Result<RowIterator<'_>, Status>
pub async fn read(
&mut self,
table: &str,
columns: &[&str],
key_set: impl Into<KeySet>
) -> Result<RowIterator<'_>, Status>
read returns a RowIterator for reading multiple rows from the database.
sourcepub async fn read_with_option(
&mut self,
table: &str,
columns: &[&str],
key_set: impl Into<KeySet>,
options: ReadOptions
) -> Result<RowIterator<'_>, Status>
pub async fn read_with_option(
&mut self,
table: &str,
columns: &[&str],
key_set: impl Into<KeySet>,
options: ReadOptions
) -> Result<RowIterator<'_>, Status>
read returns a RowIterator for reading multiple rows from the database.
Trait Implementations
sourceimpl Deref for ReadOnlyTransaction
impl Deref for ReadOnlyTransaction
type Target = Transaction
type Target = Transaction
The resulting type after dereferencing.
Auto Trait Implementations
impl !RefUnwindSafe for ReadOnlyTransaction
impl Send for ReadOnlyTransaction
impl Sync for ReadOnlyTransaction
impl Unpin for ReadOnlyTransaction
impl !UnwindSafe for ReadOnlyTransaction
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> Instrument for T
impl<T> Instrument for T
sourcefn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
sourcefn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
sourceimpl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
sourcefn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message T in a tonic::Request
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
fn vzip(self) -> V
sourceimpl<T> WithSubscriber for T
impl<T> WithSubscriber for T
sourcefn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
Attaches the provided Subscriber to this type, returning a
WithDispatch wrapper. Read more
sourcefn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
Attaches the current default Subscriber to this type, returning a
WithDispatch wrapper. Read more