use std::path::PathBuf;
use thiserror::Error;
#[derive(Error, Debug)]
pub enum SqlStreamError {
#[error("File not found: {0}")]
FileNotFound(PathBuf),
#[error("Unsupported file format: {0}. Supported formats: .csv, .json")]
UnsupportedFormat(String),
#[error("DataFusion error: {0}")]
DataFusion(#[from] datafusion::error::DataFusionError),
#[error("Arrow error: {0}")]
Arrow(#[from] arrow::error::ArrowError),
#[error("IO error: {0}")]
Io(#[from] std::io::Error),
#[error("SQL execution failed: {0}")]
QueryExecution(String),
#[error("Failed to register table '{0}': {1}")]
TableRegistration(String, String),
#[error("Failed to infer schema from file: {0}")]
SchemaInference(String),
}
pub type Result<T> = std::result::Result<T, SqlStreamError>;