Skip to main content

QueryService

Trait QueryService 

Source
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§

Source

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.

Source

fn execute(&self, request: ExecuteRequest) -> BoxFuture<'_, ExecuteResponse>

Executes a canonical request, buffering the result.

Source

fn execute_stream( &self, request: ExecuteRequest, ) -> BoxFuture<'_, Box<dyn ArrowFrameStream>>

Executes a canonical request, streaming the result as Arrow IPC byte frames (see ArrowFrameStream).

Source

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.

Source

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".

Implementors§