pub struct BatchReadOnlyTransaction { /* private fields */ }Expand description
BatchReadOnlyTransaction is a ReadOnlyTransaction that allows for exporting arbitrarily large amounts of data from Cloud Spanner databases. BatchReadOnlyTransaction partitions a read/query request. Read/query request can then be executed independently over each partition while observing the same snapshot of the database.
Implementations§
Source§impl BatchReadOnlyTransaction
impl BatchReadOnlyTransaction
pub async fn begin( session: ManagedSession, tb: TimestampBound, options: CallOptions, ) -> Result<BatchReadOnlyTransaction, Status>
Sourcepub async fn partition_read(
&mut self,
table: &str,
columns: &[&str],
keys: impl Into<KeySet> + Clone,
) -> Result<Vec<Partition<TableReader>>, Status>
pub async fn partition_read( &mut self, table: &str, columns: &[&str], keys: impl Into<KeySet> + Clone, ) -> Result<Vec<Partition<TableReader>>, Status>
partition_read returns a list of Partitions that can be used to read rows from the database. These partitions can be executed across multiple processes, even across different machines. The partition size and count hints can be configured using PartitionOptions.
Sourcepub async fn partition_read_with_option(
&mut self,
table: &str,
columns: &[&str],
keys: impl Into<KeySet> + Clone,
po: Option<PartitionOptions>,
ro: ReadOptions,
data_boost_enabled: bool,
directed_read_options: Option<DirectedReadOptions>,
) -> Result<Vec<Partition<TableReader>>, Status>
pub async fn partition_read_with_option( &mut self, table: &str, columns: &[&str], keys: impl Into<KeySet> + Clone, po: Option<PartitionOptions>, ro: ReadOptions, data_boost_enabled: bool, directed_read_options: Option<DirectedReadOptions>, ) -> Result<Vec<Partition<TableReader>>, Status>
partition_read returns a list of Partitions that can be used to read rows from the database. These partitions can be executed across multiple processes, even across different machines. The partition size and count hints can be configured using PartitionOptions.
Sourcepub async fn partition_query(
&mut self,
stmt: Statement,
) -> Result<Vec<Partition<StatementReader>>, Status>
pub async fn partition_query( &mut self, stmt: Statement, ) -> Result<Vec<Partition<StatementReader>>, Status>
partition_query returns a list of Partitions that can be used to execute a query against the database.
Sourcepub async fn partition_query_with_option(
&mut self,
stmt: Statement,
po: Option<PartitionOptions>,
qo: QueryOptions,
data_boost_enabled: bool,
directed_read_options: Option<DirectedReadOptions>,
) -> Result<Vec<Partition<StatementReader>>, Status>
pub async fn partition_query_with_option( &mut self, stmt: Statement, po: Option<PartitionOptions>, qo: QueryOptions, data_boost_enabled: bool, directed_read_options: Option<DirectedReadOptions>, ) -> Result<Vec<Partition<StatementReader>>, Status>
partition_query returns a list of Partitions that can be used to execute a query against the database.
Methods from Deref<Target = Transaction>§
Sourcepub async fn query(
&mut self,
statement: Statement,
) -> Result<RowIterator<'_, impl Reader>, Status>
pub async fn query( &mut self, statement: Statement, ) -> Result<RowIterator<'_, impl Reader>, 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<'_, impl Reader>, Status>
pub async fn query_with_option( &mut self, statement: Statement, options: QueryOptions, ) -> Result<RowIterator<'_, impl Reader>, 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<'_, impl Reader>, Status>
pub async fn read( &mut self, table: &str, columns: &[&str], key_set: impl Into<KeySet>, ) -> Result<RowIterator<'_, impl Reader>, Status>
read returns a RowIterator for reading multiple rows from the database.
use google_cloud_spanner::key::Key;
use google_cloud_spanner::client::{Client, Error};
#[tokio::main]
async fn run(client: Client) -> Result<(), Error> {
let mut tx = client.single().await?;
let mut iter = tx.read("Guild", &["GuildID", "OwnerUserID"], vec![
Key::new(&"pk1"),
Key::new(&"pk2")
]).await?;
while let Some(row) = iter.next().await? {
let guild_id = row.column_by_name::<String>("GuildID");
//do something
};
Ok(())
}Sourcepub async fn read_with_option(
&mut self,
table: &str,
columns: &[&str],
key_set: impl Into<KeySet>,
options: ReadOptions,
) -> Result<RowIterator<'_, impl Reader>, Status>
pub async fn read_with_option( &mut self, table: &str, columns: &[&str], key_set: impl Into<KeySet>, options: ReadOptions, ) -> Result<RowIterator<'_, impl Reader>, Status>
read returns a RowIterator for reading multiple rows from the database.
Sourcepub async fn read_row(
&mut self,
table: &str,
columns: &[&str],
key: Key,
) -> Result<Option<Row>, Status>
pub async fn read_row( &mut self, table: &str, columns: &[&str], key: Key, ) -> Result<Option<Row>, Status>
read returns a RowIterator for reading multiple rows from the database.
use google_cloud_spanner::key::Key;
use google_cloud_spanner::client::Client;
use google_cloud_spanner::client::Error;
async fn run(client: Client) -> Result<(), Error> {
let mut tx = client.single().await?;
let row = tx.read_row("Guild", &["GuildID", "OwnerUserID"], Key::new(&"guild1")).await?;
Ok(())
}Sourcepub async fn read_row_with_option(
&mut self,
table: &str,
columns: &[&str],
key: Key,
options: ReadOptions,
) -> Result<Option<Row>, Status>
pub async fn read_row_with_option( &mut self, table: &str, columns: &[&str], key: Key, options: ReadOptions, ) -> Result<Option<Row>, Status>
read returns a RowIterator for reading multiple rows from the database.
Trait Implementations§
Source§impl Deref for BatchReadOnlyTransaction
impl Deref for BatchReadOnlyTransaction
Auto Trait Implementations§
impl !Freeze for BatchReadOnlyTransaction
impl !RefUnwindSafe for BatchReadOnlyTransaction
impl Send for BatchReadOnlyTransaction
impl Sync for BatchReadOnlyTransaction
impl Unpin for BatchReadOnlyTransaction
impl !UnwindSafe for BatchReadOnlyTransaction
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> 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