SessionConfigurator

Trait SessionConfigurator 

Source
pub trait SessionConfigurator:
    Send
    + Sync
    + Debug {
    // Required method
    fn configure<'life0, 'life1, 'async_trait>(
        &'life0 self,
        ctx: &'life1 SessionContext,
    ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>
       where 'life0: 'async_trait,
             'life1: 'async_trait,
             Self: 'async_trait;
}
Expand description

Trait for configuring a SessionContext with additional tables and settings

This trait allows users to extend the default session context with custom tables, configuration, or other DataFusion resources. Implementations can register JSON files, CSV files, in-memory tables, or any DataFusion TableProvider.

§Example

use anyhow::Result;
use datafusion::execution::context::SessionContext;
use micromegas_analytics::lakehouse::session_configurator::SessionConfigurator;

#[derive(Debug)]
struct MyConfigurator;

#[async_trait::async_trait]
impl SessionConfigurator for MyConfigurator {
    async fn configure(&self, ctx: &SessionContext) -> Result<()> {
        // Register custom tables or configure session settings
        Ok(())
    }
}

Required Methods§

Source

fn configure<'life0, 'life1, 'async_trait>( &'life0 self, ctx: &'life1 SessionContext, ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

Configure the given SessionContext (e.g., register custom tables)

§Arguments
  • ctx - The SessionContext to configure
§Returns

Returns Ok(()) if configuration succeeds, or an error if something goes wrong.

Implementors§