pub struct RheiFlightSqlService { /* private fields */ }Expand description
Arrow Flight SQL service backed by Rhei’s OLAP engine.
This struct implements arrow_flight::sql::server::FlightSqlService and
routes every analytical SQL query to the rhei_olap::OlapBackend
(DataFusion or DuckDB) using true streaming via
rhei_core::OlapEngine::query_stream. Record batches flow from the
engine directly into the gRPC Arrow IPC stream without buffering the full
result in memory.
§Deferred execution
The service uses a deferred-execution pattern:
get_flight_info_statementencodes the SQL into an opaqueTicketand returns immediately — no query is planned yet.do_get_statementreceives the ticket, decodes the SQL, executes it against the OLAP backend, and streams the results.
This keeps get_flight_info latency minimal and avoids holding engine
resources while the client is not yet ready to consume data.
§Read-only constraint
Write operations (do_put_*) return tonic::Status::unimplemented.
DML (INSERT / UPDATE / DELETE) is handled by the OLTP engine through a
separate path; there are no DML semantics through Arrow Flight SQL today.
§Compression
Defaults to CompressionType::Zstd. Override at construction time with
RheiFlightSqlService::with_compression.
§Authentication
When auth_token is Some, every RPC must carry
authorization: Bearer {token} in the gRPC metadata; requests without a
valid token are rejected with tonic::Status::unauthenticated. When
auth_token is None (the default), all requests are allowed.
Implementations§
Source§impl RheiFlightSqlService
impl RheiFlightSqlService
Sourcepub fn new(olap: OlapBackend) -> Self
pub fn new(olap: OlapBackend) -> Self
Create a new service backed by olap with CompressionType::Zstd (the default).
Authentication is disabled: all requests are accepted without a bearer
token. Call RheiFlightSqlService::with_auth_token on the returned
value to enable token-based authentication.
Sourcepub fn with_compression(olap: OlapBackend, compression: CompressionType) -> Self
pub fn with_compression(olap: OlapBackend, compression: CompressionType) -> Self
Create a new service backed by olap with the given CompressionType.
Authentication is disabled by default. Chain
RheiFlightSqlService::with_auth_token to require bearer-token auth.
Sourcepub fn with_auth_token(self, token: impl Into<String>) -> Self
pub fn with_auth_token(self, token: impl Into<String>) -> Self
Require clients to present Authorization: Bearer {token} on every RPC.
Returns a new service instance with the token configured. When the
token is None all requests are allowed (default, no-auth mode).
Empty strings are silently ignored (treated as “no auth configured”)
to handle misconfigured RHEI_FLIGHT_AUTH_TOKEN="" env vars safely —
otherwise an empty-string expected token would match every request
that presented no authorization header, effectively disabling auth
while giving operators a false sense of security.
Trait Implementations§
Source§impl FlightSqlService for RheiFlightSqlService
impl FlightSqlService for RheiFlightSqlService
Source§type FlightService = RheiFlightSqlService
type FlightService = RheiFlightSqlService
Source§fn do_handshake<'life0, 'async_trait>(
&'life0 self,
request: Request<Streaming<HandshakeRequest>>,
) -> Pin<Box<dyn Future<Output = Result<Response<Pin<Box<dyn Stream<Item = Result<HandshakeResponse, Status>> + Send>>>, Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn do_handshake<'life0, 'async_trait>(
&'life0 self,
request: Request<Streaming<HandshakeRequest>>,
) -> Pin<Box<dyn Future<Output = Result<Response<Pin<Box<dyn Stream<Item = Result<HandshakeResponse, Status>> + Send>>>, Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Source§fn get_flight_info_statement<'life0, 'async_trait>(
&'life0 self,
query: CommandStatementQuery,
request: Request<FlightDescriptor>,
) -> Pin<Box<dyn Future<Output = Result<Response<FlightInfo>, Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_flight_info_statement<'life0, 'async_trait>(
&'life0 self,
query: CommandStatementQuery,
request: Request<FlightDescriptor>,
) -> Pin<Box<dyn Future<Output = Result<Response<FlightInfo>, Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Source§fn do_get_statement<'life0, 'async_trait>(
&'life0 self,
ticket: TicketStatementQuery,
request: Request<Ticket>,
) -> Pin<Box<dyn Future<Output = Result<Response<<Self as FlightService>::DoGetStream>, Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn do_get_statement<'life0, 'async_trait>(
&'life0 self,
ticket: TicketStatementQuery,
request: Request<Ticket>,
) -> Pin<Box<dyn Future<Output = Result<Response<<Self as FlightService>::DoGetStream>, Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Source§fn get_flight_info_prepared_statement<'life0, 'async_trait>(
&'life0 self,
cmd: CommandPreparedStatementQuery,
request: Request<FlightDescriptor>,
) -> Pin<Box<dyn Future<Output = Result<Response<FlightInfo>, Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_flight_info_prepared_statement<'life0, 'async_trait>(
&'life0 self,
cmd: CommandPreparedStatementQuery,
request: Request<FlightDescriptor>,
) -> Pin<Box<dyn Future<Output = Result<Response<FlightInfo>, Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Source§fn do_action_create_prepared_statement<'life0, 'async_trait>(
&'life0 self,
query: ActionCreatePreparedStatementRequest,
request: Request<Action>,
) -> Pin<Box<dyn Future<Output = Result<ActionCreatePreparedStatementResult, Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn do_action_create_prepared_statement<'life0, 'async_trait>(
&'life0 self,
query: ActionCreatePreparedStatementRequest,
request: Request<Action>,
) -> Pin<Box<dyn Future<Output = Result<ActionCreatePreparedStatementResult, Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Source§fn do_action_close_prepared_statement<'life0, 'async_trait>(
&'life0 self,
_query: ActionClosePreparedStatementRequest,
request: Request<Action>,
) -> Pin<Box<dyn Future<Output = Result<(), Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn do_action_close_prepared_statement<'life0, 'async_trait>(
&'life0 self,
_query: ActionClosePreparedStatementRequest,
request: Request<Action>,
) -> Pin<Box<dyn Future<Output = Result<(), Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Source§fn do_get_prepared_statement<'life0, 'async_trait>(
&'life0 self,
query: CommandPreparedStatementQuery,
request: Request<Ticket>,
) -> Pin<Box<dyn Future<Output = Result<Response<<Self as FlightService>::DoGetStream>, Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn do_get_prepared_statement<'life0, 'async_trait>(
&'life0 self,
query: CommandPreparedStatementQuery,
request: Request<Ticket>,
) -> Pin<Box<dyn Future<Output = Result<Response<<Self as FlightService>::DoGetStream>, Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Source§fn do_put_statement_update<'life0, 'async_trait>(
&'life0 self,
_ticket: CommandStatementUpdate,
request: Request<PeekableFlightDataStream>,
) -> Pin<Box<dyn Future<Output = Result<i64, Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn do_put_statement_update<'life0, 'async_trait>(
&'life0 self,
_ticket: CommandStatementUpdate,
request: Request<PeekableFlightDataStream>,
) -> Pin<Box<dyn Future<Output = Result<i64, Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Source§fn register_sql_info<'life0, 'life1, 'async_trait>(
&'life0 self,
_id: i32,
_result: &'life1 SqlInfo,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn register_sql_info<'life0, 'life1, 'async_trait>(
&'life0 self,
_id: i32,
_result: &'life1 SqlInfo,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn do_get_fallback<'life0, 'async_trait>(
&'life0 self,
_request: Request<Ticket>,
message: Any,
) -> Pin<Box<dyn Future<Output = Result<Response<Self::DoGetStream>, Status>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
fn do_get_fallback<'life0, 'async_trait>(
&'life0 self,
_request: Request<Ticket>,
message: Any,
) -> Pin<Box<dyn Future<Output = Result<Response<Self::DoGetStream>, Status>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
Source§fn get_flight_info_substrait_plan<'life0, 'async_trait>(
&'life0 self,
_query: CommandStatementSubstraitPlan,
_request: Request<FlightDescriptor>,
) -> Pin<Box<dyn Future<Output = Result<Response<FlightInfo>, Status>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
fn get_flight_info_substrait_plan<'life0, 'async_trait>(
&'life0 self,
_query: CommandStatementSubstraitPlan,
_request: Request<FlightDescriptor>,
) -> Pin<Box<dyn Future<Output = Result<Response<FlightInfo>, Status>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
Source§fn get_flight_info_catalogs<'life0, 'async_trait>(
&'life0 self,
_query: CommandGetCatalogs,
_request: Request<FlightDescriptor>,
) -> Pin<Box<dyn Future<Output = Result<Response<FlightInfo>, Status>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
fn get_flight_info_catalogs<'life0, 'async_trait>(
&'life0 self,
_query: CommandGetCatalogs,
_request: Request<FlightDescriptor>,
) -> Pin<Box<dyn Future<Output = Result<Response<FlightInfo>, Status>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
Source§fn get_flight_info_schemas<'life0, 'async_trait>(
&'life0 self,
_query: CommandGetDbSchemas,
_request: Request<FlightDescriptor>,
) -> Pin<Box<dyn Future<Output = Result<Response<FlightInfo>, Status>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
fn get_flight_info_schemas<'life0, 'async_trait>(
&'life0 self,
_query: CommandGetDbSchemas,
_request: Request<FlightDescriptor>,
) -> Pin<Box<dyn Future<Output = Result<Response<FlightInfo>, Status>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
Source§fn get_flight_info_tables<'life0, 'async_trait>(
&'life0 self,
_query: CommandGetTables,
_request: Request<FlightDescriptor>,
) -> Pin<Box<dyn Future<Output = Result<Response<FlightInfo>, Status>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
fn get_flight_info_tables<'life0, 'async_trait>(
&'life0 self,
_query: CommandGetTables,
_request: Request<FlightDescriptor>,
) -> Pin<Box<dyn Future<Output = Result<Response<FlightInfo>, Status>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
Source§fn get_flight_info_table_types<'life0, 'async_trait>(
&'life0 self,
_query: CommandGetTableTypes,
_request: Request<FlightDescriptor>,
) -> Pin<Box<dyn Future<Output = Result<Response<FlightInfo>, Status>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
fn get_flight_info_table_types<'life0, 'async_trait>(
&'life0 self,
_query: CommandGetTableTypes,
_request: Request<FlightDescriptor>,
) -> Pin<Box<dyn Future<Output = Result<Response<FlightInfo>, Status>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
Source§fn get_flight_info_sql_info<'life0, 'async_trait>(
&'life0 self,
_query: CommandGetSqlInfo,
_request: Request<FlightDescriptor>,
) -> Pin<Box<dyn Future<Output = Result<Response<FlightInfo>, Status>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
fn get_flight_info_sql_info<'life0, 'async_trait>(
&'life0 self,
_query: CommandGetSqlInfo,
_request: Request<FlightDescriptor>,
) -> Pin<Box<dyn Future<Output = Result<Response<FlightInfo>, Status>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
Source§fn get_flight_info_primary_keys<'life0, 'async_trait>(
&'life0 self,
_query: CommandGetPrimaryKeys,
_request: Request<FlightDescriptor>,
) -> Pin<Box<dyn Future<Output = Result<Response<FlightInfo>, Status>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
fn get_flight_info_primary_keys<'life0, 'async_trait>(
&'life0 self,
_query: CommandGetPrimaryKeys,
_request: Request<FlightDescriptor>,
) -> Pin<Box<dyn Future<Output = Result<Response<FlightInfo>, Status>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
Source§fn get_flight_info_exported_keys<'life0, 'async_trait>(
&'life0 self,
_query: CommandGetExportedKeys,
_request: Request<FlightDescriptor>,
) -> Pin<Box<dyn Future<Output = Result<Response<FlightInfo>, Status>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
fn get_flight_info_exported_keys<'life0, 'async_trait>(
&'life0 self,
_query: CommandGetExportedKeys,
_request: Request<FlightDescriptor>,
) -> Pin<Box<dyn Future<Output = Result<Response<FlightInfo>, Status>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
Source§fn get_flight_info_imported_keys<'life0, 'async_trait>(
&'life0 self,
_query: CommandGetImportedKeys,
_request: Request<FlightDescriptor>,
) -> Pin<Box<dyn Future<Output = Result<Response<FlightInfo>, Status>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
fn get_flight_info_imported_keys<'life0, 'async_trait>(
&'life0 self,
_query: CommandGetImportedKeys,
_request: Request<FlightDescriptor>,
) -> Pin<Box<dyn Future<Output = Result<Response<FlightInfo>, Status>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
Source§fn get_flight_info_cross_reference<'life0, 'async_trait>(
&'life0 self,
_query: CommandGetCrossReference,
_request: Request<FlightDescriptor>,
) -> Pin<Box<dyn Future<Output = Result<Response<FlightInfo>, Status>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
fn get_flight_info_cross_reference<'life0, 'async_trait>(
&'life0 self,
_query: CommandGetCrossReference,
_request: Request<FlightDescriptor>,
) -> Pin<Box<dyn Future<Output = Result<Response<FlightInfo>, Status>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
Source§fn get_flight_info_xdbc_type_info<'life0, 'async_trait>(
&'life0 self,
_query: CommandGetXdbcTypeInfo,
_request: Request<FlightDescriptor>,
) -> Pin<Box<dyn Future<Output = Result<Response<FlightInfo>, Status>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
fn get_flight_info_xdbc_type_info<'life0, 'async_trait>(
&'life0 self,
_query: CommandGetXdbcTypeInfo,
_request: Request<FlightDescriptor>,
) -> Pin<Box<dyn Future<Output = Result<Response<FlightInfo>, Status>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
Source§fn get_flight_info_fallback<'life0, 'async_trait>(
&'life0 self,
cmd: Command,
_request: Request<FlightDescriptor>,
) -> Pin<Box<dyn Future<Output = Result<Response<FlightInfo>, Status>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
fn get_flight_info_fallback<'life0, 'async_trait>(
&'life0 self,
cmd: Command,
_request: Request<FlightDescriptor>,
) -> Pin<Box<dyn Future<Output = Result<Response<FlightInfo>, Status>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
Source§fn do_get_catalogs<'life0, 'async_trait>(
&'life0 self,
_query: CommandGetCatalogs,
_request: Request<Ticket>,
) -> Pin<Box<dyn Future<Output = Result<Response<Self::DoGetStream>, Status>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
fn do_get_catalogs<'life0, 'async_trait>(
&'life0 self,
_query: CommandGetCatalogs,
_request: Request<Ticket>,
) -> Pin<Box<dyn Future<Output = Result<Response<Self::DoGetStream>, Status>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
Source§fn do_get_schemas<'life0, 'async_trait>(
&'life0 self,
_query: CommandGetDbSchemas,
_request: Request<Ticket>,
) -> Pin<Box<dyn Future<Output = Result<Response<Self::DoGetStream>, Status>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
fn do_get_schemas<'life0, 'async_trait>(
&'life0 self,
_query: CommandGetDbSchemas,
_request: Request<Ticket>,
) -> Pin<Box<dyn Future<Output = Result<Response<Self::DoGetStream>, Status>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
Source§fn do_get_tables<'life0, 'async_trait>(
&'life0 self,
_query: CommandGetTables,
_request: Request<Ticket>,
) -> Pin<Box<dyn Future<Output = Result<Response<Self::DoGetStream>, Status>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
fn do_get_tables<'life0, 'async_trait>(
&'life0 self,
_query: CommandGetTables,
_request: Request<Ticket>,
) -> Pin<Box<dyn Future<Output = Result<Response<Self::DoGetStream>, Status>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
Source§fn do_get_table_types<'life0, 'async_trait>(
&'life0 self,
_query: CommandGetTableTypes,
_request: Request<Ticket>,
) -> Pin<Box<dyn Future<Output = Result<Response<Self::DoGetStream>, Status>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
fn do_get_table_types<'life0, 'async_trait>(
&'life0 self,
_query: CommandGetTableTypes,
_request: Request<Ticket>,
) -> Pin<Box<dyn Future<Output = Result<Response<Self::DoGetStream>, Status>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
Source§fn do_get_sql_info<'life0, 'async_trait>(
&'life0 self,
_query: CommandGetSqlInfo,
_request: Request<Ticket>,
) -> Pin<Box<dyn Future<Output = Result<Response<Self::DoGetStream>, Status>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
fn do_get_sql_info<'life0, 'async_trait>(
&'life0 self,
_query: CommandGetSqlInfo,
_request: Request<Ticket>,
) -> Pin<Box<dyn Future<Output = Result<Response<Self::DoGetStream>, Status>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
Source§fn do_get_primary_keys<'life0, 'async_trait>(
&'life0 self,
_query: CommandGetPrimaryKeys,
_request: Request<Ticket>,
) -> Pin<Box<dyn Future<Output = Result<Response<Self::DoGetStream>, Status>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
fn do_get_primary_keys<'life0, 'async_trait>(
&'life0 self,
_query: CommandGetPrimaryKeys,
_request: Request<Ticket>,
) -> Pin<Box<dyn Future<Output = Result<Response<Self::DoGetStream>, Status>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
Source§fn do_get_exported_keys<'life0, 'async_trait>(
&'life0 self,
_query: CommandGetExportedKeys,
_request: Request<Ticket>,
) -> Pin<Box<dyn Future<Output = Result<Response<Self::DoGetStream>, Status>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
fn do_get_exported_keys<'life0, 'async_trait>(
&'life0 self,
_query: CommandGetExportedKeys,
_request: Request<Ticket>,
) -> Pin<Box<dyn Future<Output = Result<Response<Self::DoGetStream>, Status>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
Source§fn do_get_imported_keys<'life0, 'async_trait>(
&'life0 self,
_query: CommandGetImportedKeys,
_request: Request<Ticket>,
) -> Pin<Box<dyn Future<Output = Result<Response<Self::DoGetStream>, Status>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
fn do_get_imported_keys<'life0, 'async_trait>(
&'life0 self,
_query: CommandGetImportedKeys,
_request: Request<Ticket>,
) -> Pin<Box<dyn Future<Output = Result<Response<Self::DoGetStream>, Status>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
Source§fn do_get_cross_reference<'life0, 'async_trait>(
&'life0 self,
_query: CommandGetCrossReference,
_request: Request<Ticket>,
) -> Pin<Box<dyn Future<Output = Result<Response<Self::DoGetStream>, Status>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
fn do_get_cross_reference<'life0, 'async_trait>(
&'life0 self,
_query: CommandGetCrossReference,
_request: Request<Ticket>,
) -> Pin<Box<dyn Future<Output = Result<Response<Self::DoGetStream>, Status>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
Source§fn do_get_xdbc_type_info<'life0, 'async_trait>(
&'life0 self,
_query: CommandGetXdbcTypeInfo,
_request: Request<Ticket>,
) -> Pin<Box<dyn Future<Output = Result<Response<Self::DoGetStream>, Status>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
fn do_get_xdbc_type_info<'life0, 'async_trait>(
&'life0 self,
_query: CommandGetXdbcTypeInfo,
_request: Request<Ticket>,
) -> Pin<Box<dyn Future<Output = Result<Response<Self::DoGetStream>, Status>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
Source§fn do_put_fallback<'life0, 'async_trait>(
&'life0 self,
_request: Request<PeekableFlightDataStream>,
message: Any,
) -> Pin<Box<dyn Future<Output = Result<Response<Self::DoPutStream>, Status>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
fn do_put_fallback<'life0, 'async_trait>(
&'life0 self,
_request: Request<PeekableFlightDataStream>,
message: Any,
) -> Pin<Box<dyn Future<Output = Result<Response<Self::DoPutStream>, Status>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
Source§fn do_put_error_callback<'life0, 'async_trait>(
&'life0 self,
_request: Request<PeekableFlightDataStream>,
error: DoPutError,
) -> Pin<Box<dyn Future<Output = Result<Response<Self::DoPutStream>, Status>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
fn do_put_error_callback<'life0, 'async_trait>(
&'life0 self,
_request: Request<PeekableFlightDataStream>,
error: DoPutError,
) -> Pin<Box<dyn Future<Output = Result<Response<Self::DoPutStream>, Status>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
Source§fn do_put_statement_ingest<'life0, 'async_trait>(
&'life0 self,
_ticket: CommandStatementIngest,
_request: Request<PeekableFlightDataStream>,
) -> Pin<Box<dyn Future<Output = Result<i64, Status>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
fn do_put_statement_ingest<'life0, 'async_trait>(
&'life0 self,
_ticket: CommandStatementIngest,
_request: Request<PeekableFlightDataStream>,
) -> Pin<Box<dyn Future<Output = Result<i64, Status>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
Source§fn do_put_prepared_statement_query<'life0, 'async_trait>(
&'life0 self,
_query: CommandPreparedStatementQuery,
_request: Request<PeekableFlightDataStream>,
) -> Pin<Box<dyn Future<Output = Result<DoPutPreparedStatementResult, Status>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
fn do_put_prepared_statement_query<'life0, 'async_trait>(
&'life0 self,
_query: CommandPreparedStatementQuery,
_request: Request<PeekableFlightDataStream>,
) -> Pin<Box<dyn Future<Output = Result<DoPutPreparedStatementResult, Status>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
Source§fn do_put_prepared_statement_update<'life0, 'async_trait>(
&'life0 self,
_query: CommandPreparedStatementUpdate,
_request: Request<PeekableFlightDataStream>,
) -> Pin<Box<dyn Future<Output = Result<i64, Status>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
fn do_put_prepared_statement_update<'life0, 'async_trait>(
&'life0 self,
_query: CommandPreparedStatementUpdate,
_request: Request<PeekableFlightDataStream>,
) -> Pin<Box<dyn Future<Output = Result<i64, Status>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
Source§fn do_put_substrait_plan<'life0, 'async_trait>(
&'life0 self,
_query: CommandStatementSubstraitPlan,
_request: Request<PeekableFlightDataStream>,
) -> Pin<Box<dyn Future<Output = Result<i64, Status>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
fn do_put_substrait_plan<'life0, 'async_trait>(
&'life0 self,
_query: CommandStatementSubstraitPlan,
_request: Request<PeekableFlightDataStream>,
) -> Pin<Box<dyn Future<Output = Result<i64, Status>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
Source§fn do_action_fallback<'life0, 'async_trait>(
&'life0 self,
request: Request<Action>,
) -> Pin<Box<dyn Future<Output = Result<Response<Self::DoActionStream>, Status>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
fn do_action_fallback<'life0, 'async_trait>(
&'life0 self,
request: Request<Action>,
) -> Pin<Box<dyn Future<Output = Result<Response<Self::DoActionStream>, Status>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
Source§fn list_custom_actions<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Option<Vec<Result<ActionType, Status>>>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
fn list_custom_actions<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Option<Vec<Result<ActionType, Status>>>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
Source§fn do_action_create_prepared_substrait_plan<'life0, 'async_trait>(
&'life0 self,
_query: ActionCreatePreparedSubstraitPlanRequest,
_request: Request<Action>,
) -> Pin<Box<dyn Future<Output = Result<ActionCreatePreparedStatementResult, Status>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
fn do_action_create_prepared_substrait_plan<'life0, 'async_trait>(
&'life0 self,
_query: ActionCreatePreparedSubstraitPlanRequest,
_request: Request<Action>,
) -> Pin<Box<dyn Future<Output = Result<ActionCreatePreparedStatementResult, Status>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
Source§fn do_action_begin_transaction<'life0, 'async_trait>(
&'life0 self,
_query: ActionBeginTransactionRequest,
_request: Request<Action>,
) -> Pin<Box<dyn Future<Output = Result<ActionBeginTransactionResult, Status>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
fn do_action_begin_transaction<'life0, 'async_trait>(
&'life0 self,
_query: ActionBeginTransactionRequest,
_request: Request<Action>,
) -> Pin<Box<dyn Future<Output = Result<ActionBeginTransactionResult, Status>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
Source§fn do_action_end_transaction<'life0, 'async_trait>(
&'life0 self,
_query: ActionEndTransactionRequest,
_request: Request<Action>,
) -> Pin<Box<dyn Future<Output = Result<(), Status>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
fn do_action_end_transaction<'life0, 'async_trait>(
&'life0 self,
_query: ActionEndTransactionRequest,
_request: Request<Action>,
) -> Pin<Box<dyn Future<Output = Result<(), Status>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
Source§fn do_action_begin_savepoint<'life0, 'async_trait>(
&'life0 self,
_query: ActionBeginSavepointRequest,
_request: Request<Action>,
) -> Pin<Box<dyn Future<Output = Result<ActionBeginSavepointResult, Status>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
fn do_action_begin_savepoint<'life0, 'async_trait>(
&'life0 self,
_query: ActionBeginSavepointRequest,
_request: Request<Action>,
) -> Pin<Box<dyn Future<Output = Result<ActionBeginSavepointResult, Status>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
Source§fn do_action_end_savepoint<'life0, 'async_trait>(
&'life0 self,
_query: ActionEndSavepointRequest,
_request: Request<Action>,
) -> Pin<Box<dyn Future<Output = Result<(), Status>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
fn do_action_end_savepoint<'life0, 'async_trait>(
&'life0 self,
_query: ActionEndSavepointRequest,
_request: Request<Action>,
) -> Pin<Box<dyn Future<Output = Result<(), Status>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
Source§fn do_action_cancel_query<'life0, 'async_trait>(
&'life0 self,
_query: ActionCancelQueryRequest,
_request: Request<Action>,
) -> Pin<Box<dyn Future<Output = Result<ActionCancelQueryResult, Status>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
fn do_action_cancel_query<'life0, 'async_trait>(
&'life0 self,
_query: ActionCancelQueryRequest,
_request: Request<Action>,
) -> Pin<Box<dyn Future<Output = Result<ActionCancelQueryResult, Status>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
Source§fn do_exchange_fallback<'life0, 'async_trait>(
&'life0 self,
_request: Request<Streaming<FlightData>>,
) -> Pin<Box<dyn Future<Output = Result<Response<Self::DoExchangeStream>, Status>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
fn do_exchange_fallback<'life0, 'async_trait>(
&'life0 self,
_request: Request<Streaming<FlightData>>,
) -> Pin<Box<dyn Future<Output = Result<Response<Self::DoExchangeStream>, Status>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
Auto Trait Implementations§
impl Freeze for RheiFlightSqlService
impl !RefUnwindSafe for RheiFlightSqlService
impl Send for RheiFlightSqlService
impl Sync for RheiFlightSqlService
impl Unpin for RheiFlightSqlService
impl UnsafeUnpin for RheiFlightSqlService
impl !UnwindSafe for RheiFlightSqlService
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> FlightService for Twhere
T: 'static + FlightSqlService + Send,
impl<T> FlightService for Twhere
T: 'static + FlightSqlService + Send,
Source§type HandshakeStream = Pin<Box<dyn Stream<Item = Result<HandshakeResponse, Status>> + Send>>
type HandshakeStream = Pin<Box<dyn Stream<Item = Result<HandshakeResponse, Status>> + Send>>
Source§type ListFlightsStream = Pin<Box<dyn Stream<Item = Result<FlightInfo, Status>> + Send>>
type ListFlightsStream = Pin<Box<dyn Stream<Item = Result<FlightInfo, Status>> + Send>>
Source§type DoGetStream = Pin<Box<dyn Stream<Item = Result<FlightData, Status>> + Send>>
type DoGetStream = Pin<Box<dyn Stream<Item = Result<FlightData, Status>> + Send>>
Source§type DoPutStream = Pin<Box<dyn Stream<Item = Result<PutResult, Status>> + Send>>
type DoPutStream = Pin<Box<dyn Stream<Item = Result<PutResult, Status>> + Send>>
Source§type DoActionStream = Pin<Box<dyn Stream<Item = Result<Result, Status>> + Send>>
type DoActionStream = Pin<Box<dyn Stream<Item = Result<Result, Status>> + Send>>
Source§type ListActionsStream = Pin<Box<dyn Stream<Item = Result<ActionType, Status>> + Send>>
type ListActionsStream = Pin<Box<dyn Stream<Item = Result<ActionType, Status>> + Send>>
Source§type DoExchangeStream = Pin<Box<dyn Stream<Item = Result<FlightData, Status>> + Send>>
type DoExchangeStream = Pin<Box<dyn Stream<Item = Result<FlightData, Status>> + Send>>
Source§fn handshake<'life0, 'async_trait>(
&'life0 self,
request: Request<Streaming<HandshakeRequest>>,
) -> Pin<Box<dyn Future<Output = Result<Response<<T as FlightService>::HandshakeStream>, Status>> + Send + 'async_trait>>where
'life0: 'async_trait,
T: 'async_trait,
fn handshake<'life0, 'async_trait>(
&'life0 self,
request: Request<Streaming<HandshakeRequest>>,
) -> Pin<Box<dyn Future<Output = Result<Response<<T as FlightService>::HandshakeStream>, Status>> + Send + 'async_trait>>where
'life0: 'async_trait,
T: 'async_trait,
Source§fn list_flights<'life0, 'async_trait>(
&'life0 self,
_request: Request<Criteria>,
) -> Pin<Box<dyn Future<Output = Result<Response<<T as FlightService>::ListFlightsStream>, Status>> + Send + 'async_trait>>where
'life0: 'async_trait,
T: 'async_trait,
fn list_flights<'life0, 'async_trait>(
&'life0 self,
_request: Request<Criteria>,
) -> Pin<Box<dyn Future<Output = Result<Response<<T as FlightService>::ListFlightsStream>, Status>> + Send + 'async_trait>>where
'life0: 'async_trait,
T: 'async_trait,
Source§fn get_flight_info<'life0, 'async_trait>(
&'life0 self,
request: Request<FlightDescriptor>,
) -> Pin<Box<dyn Future<Output = Result<Response<FlightInfo>, Status>> + Send + 'async_trait>>where
'life0: 'async_trait,
T: 'async_trait,
fn get_flight_info<'life0, 'async_trait>(
&'life0 self,
request: Request<FlightDescriptor>,
) -> Pin<Box<dyn Future<Output = Result<Response<FlightInfo>, Status>> + Send + 'async_trait>>where
'life0: 'async_trait,
T: 'async_trait,
Source§fn poll_flight_info<'life0, 'async_trait>(
&'life0 self,
_request: Request<FlightDescriptor>,
) -> Pin<Box<dyn Future<Output = Result<Response<PollInfo>, Status>> + Send + 'async_trait>>where
'life0: 'async_trait,
T: 'async_trait,
fn poll_flight_info<'life0, 'async_trait>(
&'life0 self,
_request: Request<FlightDescriptor>,
) -> Pin<Box<dyn Future<Output = Result<Response<PollInfo>, Status>> + Send + 'async_trait>>where
'life0: 'async_trait,
T: 'async_trait,
Source§fn get_schema<'life0, 'async_trait>(
&'life0 self,
_request: Request<FlightDescriptor>,
) -> Pin<Box<dyn Future<Output = Result<Response<SchemaResult>, Status>> + Send + 'async_trait>>where
'life0: 'async_trait,
T: 'async_trait,
fn get_schema<'life0, 'async_trait>(
&'life0 self,
_request: Request<FlightDescriptor>,
) -> Pin<Box<dyn Future<Output = Result<Response<SchemaResult>, Status>> + Send + 'async_trait>>where
'life0: 'async_trait,
T: 'async_trait,
Source§fn do_get<'life0, 'async_trait>(
&'life0 self,
request: Request<Ticket>,
) -> Pin<Box<dyn Future<Output = Result<Response<<T as FlightService>::DoGetStream>, Status>> + Send + 'async_trait>>where
'life0: 'async_trait,
T: 'async_trait,
fn do_get<'life0, 'async_trait>(
&'life0 self,
request: Request<Ticket>,
) -> Pin<Box<dyn Future<Output = Result<Response<<T as FlightService>::DoGetStream>, Status>> + Send + 'async_trait>>where
'life0: 'async_trait,
T: 'async_trait,
Source§fn do_put<'life0, 'async_trait>(
&'life0 self,
request: Request<Streaming<FlightData>>,
) -> Pin<Box<dyn Future<Output = Result<Response<<T as FlightService>::DoPutStream>, Status>> + Send + 'async_trait>>where
'life0: 'async_trait,
T: 'async_trait,
fn do_put<'life0, 'async_trait>(
&'life0 self,
request: Request<Streaming<FlightData>>,
) -> Pin<Box<dyn Future<Output = Result<Response<<T as FlightService>::DoPutStream>, Status>> + Send + 'async_trait>>where
'life0: 'async_trait,
T: 'async_trait,
Source§fn list_actions<'life0, 'async_trait>(
&'life0 self,
_request: Request<Empty>,
) -> Pin<Box<dyn Future<Output = Result<Response<<T as FlightService>::ListActionsStream>, Status>> + Send + 'async_trait>>where
'life0: 'async_trait,
T: 'async_trait,
fn list_actions<'life0, 'async_trait>(
&'life0 self,
_request: Request<Empty>,
) -> Pin<Box<dyn Future<Output = Result<Response<<T as FlightService>::ListActionsStream>, Status>> + Send + 'async_trait>>where
'life0: 'async_trait,
T: 'async_trait,
Source§fn do_action<'life0, 'async_trait>(
&'life0 self,
request: Request<Action>,
) -> Pin<Box<dyn Future<Output = Result<Response<<T as FlightService>::DoActionStream>, Status>> + Send + 'async_trait>>where
'life0: 'async_trait,
T: 'async_trait,
fn do_action<'life0, 'async_trait>(
&'life0 self,
request: Request<Action>,
) -> Pin<Box<dyn Future<Output = Result<Response<<T as FlightService>::DoActionStream>, Status>> + Send + 'async_trait>>where
'life0: 'async_trait,
T: 'async_trait,
Source§fn do_exchange<'life0, 'async_trait>(
&'life0 self,
request: Request<Streaming<FlightData>>,
) -> Pin<Box<dyn Future<Output = Result<Response<<T as FlightService>::DoExchangeStream>, Status>> + Send + 'async_trait>>where
'life0: 'async_trait,
T: 'async_trait,
fn do_exchange<'life0, 'async_trait>(
&'life0 self,
request: Request<Streaming<FlightData>>,
) -> Pin<Box<dyn Future<Output = Result<Response<<T as FlightService>::DoExchangeStream>, Status>> + Send + 'async_trait>>where
'life0: 'async_trait,
T: 'async_trait,
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> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§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