pub trait QueryService: Send + Sync {
// Required methods
fn prepare(
&self,
session_id: SessionId,
sql: String,
) -> BoxFuture<'_, PreparedStatementBinding>;
fn execute(&self, request: ExecuteRequest) -> BoxFuture<'_, ExecuteResponse>;
fn execute_stream(
&self,
request: ExecuteRequest,
) -> BoxFuture<'_, Box<dyn ArrowFrameStream>>;
fn cancel_query(&self, query_id: QueryId) -> BoxFuture<'_, ()>;
fn get_query_status(&self, query_id: QueryId) -> BoxFuture<'_, QueryStatus>;
}Expand description
Query preparation, execution, streaming, and cancellation (S1D-003).
Required Methods§
Sourcefn prepare(
&self,
session_id: SessionId,
sql: String,
) -> BoxFuture<'_, PreparedStatementBinding>
fn prepare( &self, session_id: SessionId, sql: String, ) -> BoxFuture<'_, PreparedStatementBinding>
Prepares a SQL statement on a session, returning the binding record (S1D-005) the executor validates before every execution.
Sourcefn execute(&self, request: ExecuteRequest) -> BoxFuture<'_, ExecuteResponse>
fn execute(&self, request: ExecuteRequest) -> BoxFuture<'_, ExecuteResponse>
Executes a canonical request, buffering the result.
Sourcefn execute_stream(
&self,
request: ExecuteRequest,
) -> BoxFuture<'_, Box<dyn ArrowFrameStream>>
fn execute_stream( &self, request: ExecuteRequest, ) -> BoxFuture<'_, Box<dyn ArrowFrameStream>>
Executes a canonical request, streaming the result as Arrow IPC byte
frames (see ArrowFrameStream).
Sourcefn cancel_query(&self, query_id: QueryId) -> BoxFuture<'_, ()>
fn cancel_query(&self, query_id: QueryId) -> BoxFuture<'_, ()>
Cancels a running query (S1D-006). Cancelling an unknown query fails;
a finished query keeps its durable outcome (spec section 4.7), which
QueryService::get_query_status reports.
Sourcefn get_query_status(&self, query_id: QueryId) -> BoxFuture<'_, QueryStatus>
fn get_query_status(&self, query_id: QueryId) -> BoxFuture<'_, QueryStatus>
Returns the current status of a query, including its durable outcome once finished.
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".