//! Translate Hamelin IR to DataFusion LogicalPlans
//!
//! This crate provides translation from Hamelin's lowered intermediate representation (IR)
//! to DataFusion's logical plan representation, enabling direct execution of
//! Hamelin queries on DataFusion without SQL string generation.

pub mod codec;

mod command;
#[cfg(feature = "executor")]
mod executor;
mod expr;
mod func;
mod pipeline;
mod struct_expansion;
mod translate_api;
mod udf;

pub mod arrow;
#[cfg(feature = "executor")]
mod aws;
#[cfg(feature = "executor")]
mod config;
#[cfg(feature = "executor")]
mod iceberg;
pub mod statement;

#[cfg(feature = "executor")]
pub use executor::{DataFusionExecutor, DataFusionExecutorConfig};
#[cfg(feature = "executor")]
pub use iceberg::{DefaultIcebergTableResolver, IcebergTableResolver};
pub use statement::TranslatedStatement;
pub use translate_api::{
    catalog_provider_from_session, parse_and_translate, parse_and_translate_with_options,
    parse_and_translate_with_time_range, translate, translate_with_options,
    type_check_and_translate, type_check_and_translate_with_options,
};
