Skip to main content

Module context

Module context 

Source
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 over DataFusion’s SessionContext that allows custom implementations to control session behavior, capabilities, and SQL execution. The default implementation wraps SessionContext directly.

  • QueryContext: The high-level interface combining a session and a ConnectorRegistry. 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§

QueryContext
Query context for interactive data exploration.

Enums§

SessionCapability
Session capabilities a QuerySession can expose to the QueryContext.

Constants§

DEFAULT_SESSION_CAPABILITIES

Traits§

QuerySession
Abstraction over a query-capable DataFusion session.