Expand description
Query context and session abstractions for DataFusion integration.
This module provides the core abstractions for executing queries against registered connectors:
-
QuerySession: An abstraction overDataFusion’sSessionContextthat allows custom implementations to control session behavior, capabilities, and SQL execution. The default implementation wrapsSessionContextdirectly. -
QueryContext: The high-level interface combining a session and aConnectorRegistry. It handles connector registration, catalog discovery, and query execution. -
SessionCapability: Describes what actions a session supports (e.g., executing queries without specifying a connector).
§Custom Sessions
Implement QuerySession to customize DataFusion behavior:
ⓘ
use async_trait::async_trait;
use datafusion::execution::context::SessionContext;
use stately_arrow::{QuerySession, SessionCapability, Result};
#[derive(Clone)]
pub struct MySession {
inner: SessionContext,
}
#[async_trait]
impl QuerySession for MySession {
fn as_session(&self) -> &SessionContext { &self.inner }
fn capabilities(&self) -> &[SessionCapability] { &[] }
async fn sql(&self, sql: &str) -> Result<DataFrame> {
// Custom SQL handling
}
}Structs§
- Query
Context - Query context for interactive data exploration.
Enums§
- Session
Capability - Session capabilities a
QuerySessioncan expose to theQueryContext.
Constants§
Traits§
- Query
Session - Abstraction over a query-capable
DataFusionsession.