pub struct Session(pub Arc<SessionInner>);Expand description
A session object is used to execute queries and maintains cluster state through the control connection. The control connection is used to auto-discover nodes and monitor cluster changes (topology and schema). Each session also maintains multiple pools of connections to cluster nodes which are used to query the cluster.
Instances of the session object are thread-safe to execute queries.
Tuple Fields§
§0: Arc<SessionInner>Implementations§
Source§impl Session
impl Session
Sourcepub fn close(&self) -> CassFuture<()>
pub fn close(&self) -> CassFuture<()>
Closes the session connection and synchronously waits for any in-flight requests to complete before the returned future resolves.
Returns a CassFuture<()> that resolves once the
underlying C++ driver has finished its close handshake.
Callers can compose timeouts (tokio::time::timeout)
around the await to bound how long they’ll wait for a
hung session.
Drop for SessionInner still calls cass_session_free
to deallocate; calling close().await first is the
graceful path. A session that’s dropped without
awaiting close() is closed synchronously by the C++
driver inside cass_session_free, which can block for
up to the underlying close timeout.
Sourcepub async fn prepare(&self, query: impl AsRef<str>) -> Result<PreparedStatement>
pub async fn prepare(&self, query: impl AsRef<str>) -> Result<PreparedStatement>
Create a prepared statement with the given query.
Sourcepub fn statement(&self, query: impl AsRef<str>) -> Statement
pub fn statement(&self, query: impl AsRef<str>) -> Statement
Creates a statement with the given query.
Sourcepub fn execute_batch(&self, batch: &Batch) -> CassFuture<CassResult>
pub fn execute_batch(&self, batch: &Batch) -> CassFuture<CassResult>
Execute a batch statement.
Sourcepub fn execute_batch_with_payloads(
&self,
batch: &Batch,
) -> CassFuture<(CassResult, HashMap<String, Vec<u8>>)>
pub fn execute_batch_with_payloads( &self, batch: &Batch, ) -> CassFuture<(CassResult, HashMap<String, Vec<u8>>)>
Execute a batch statement and get any custom payloads from the response.
Sourcepub fn execute_batch_with_tracing(
&self,
batch: &Batch,
) -> CassFuture<(CassResult, Option<Uuid>)>
pub fn execute_batch_with_tracing( &self, batch: &Batch, ) -> CassFuture<(CassResult, Option<Uuid>)>
Execute a batch statement and retrieve the server-side
trace UUID from the future. The UUID is Some when at
least one statement in the batch had set_tracing(true)
set before being added (the cpp-driver returns
CASS_ERROR_LIB_NO_TRACING_ID otherwise, surfaced here
as None).
Mirrors Session::execute_with_tracing in shape — for
batched execution where we want the trace UUID alongside
the result, without awaiting in the constructor.
Sourcepub async fn execute(&self, query: impl AsRef<str>) -> Result<CassResult>
pub async fn execute(&self, query: impl AsRef<str>) -> Result<CassResult>
Executes a given query.
Sourcepub fn batch(&self, batch_type: BatchType) -> Batch
pub fn batch(&self, batch_type: BatchType) -> Batch
Creates a new batch that is bound to this session.
Sourcepub fn execute_with_payloads(
&self,
statement: &Statement,
) -> CassFuture<(CassResult, HashMap<String, Vec<u8>>)>
pub fn execute_with_payloads( &self, statement: &Statement, ) -> CassFuture<(CassResult, HashMap<String, Vec<u8>>)>
Execute a statement and get any custom payloads from the response.
Sourcepub fn execute_with_tracing(
&self,
statement: &Statement,
) -> CassFuture<(CassResult, Option<Uuid>)>
pub fn execute_with_tracing( &self, statement: &Statement, ) -> CassFuture<(CassResult, Option<Uuid>)>
Execute a statement and retrieve the server-side trace
UUID from the future. The UUID is Some when the
statement had set_tracing(true) set before execute
(the cpp-driver returns CASS_ERROR_LIB_NO_TRACING_ID
otherwise, surfaced here as None). Pair with
system_traces.sessions / system_traces.events
queries by trace UUID for full client-driven trace
capture.
Mirrors Session::execute_with_payloads in shape —
borrows the statement (so it can be re-used or dropped
by the caller) and returns the future without awaiting,
matching the pattern callers expect for the
auxiliary-data execute variants.
Sourcepub fn get_schema_meta(&self) -> SchemaMeta
pub fn get_schema_meta(&self) -> SchemaMeta
Gets a snapshot of this session’s schema metadata. The returned snapshot of the schema metadata is not updated. This function must be called again to retrieve any schema changes since the previous call.
Sourcepub fn get_metrics(&self) -> SessionMetrics
pub fn get_metrics(&self) -> SessionMetrics
Gets a copy of this session’s performance/diagnostic metrics.