pub mod arrow;
pub mod csv;
pub mod parallel;
pub mod parquet;
pub mod source;
pub use arrow::{
import_from_arrow_ipc, import_from_record_batch, import_from_record_batches,
ArrowImportOptions, ArrowToCsvWriter, CsvWriterOptions,
};
pub use csv::{
import_from_callback, import_from_file, import_from_files, import_from_iter,
import_from_stream, CsvImportOptions, DataPipeSender,
};
pub use parquet::{
import_from_parquet, import_from_parquet_files, import_from_parquet_stream,
ParquetImportOptions,
};
pub use crate::types::ColumnNameMode;
pub use parallel::{ImportFileEntry, ParallelTransportPool};
pub use source::IntoFileSources;
use thiserror::Error;
#[derive(Error, Debug)]
pub enum ImportError {
#[error("IO error: {0}")]
IoError(#[from] std::io::Error),
#[error("Parquet error: {0}")]
ParquetError(String),
#[error("Arrow error: {0}")]
ArrowError(String),
#[error("Transport error: {0}")]
TransportError(#[from] crate::error::TransportError),
#[error("Query error: {0}")]
QueryError(String),
#[error("Conversion error: {0}")]
ConversionError(String),
#[error("Invalid configuration: {0}")]
InvalidConfig(String),
#[error("CSV write error: {0}")]
CsvWriteError(String),
#[error("Arrow IPC error: {0}")]
ArrowIpcError(String),
#[error("SQL execution failed: {0}")]
SqlError(String),
#[error("HTTP transport failed: {0}")]
HttpTransportError(String),
#[error("Data streaming error: {0}")]
StreamError(String),
#[error("Compression error: {0}")]
CompressionError(String),
#[error("Invalid session state: {0}")]
InvalidSessionState(String),
#[error("Channel error: {0}")]
ChannelError(String),
#[error("Parallel import error: {0}")]
ParallelImportError(String),
#[error("Schema inference failed: {0}")]
SchemaInferenceError(String),
#[error("Schema mismatch between files: {0}")]
SchemaMismatchError(String),
}
impl From<::arrow::error::ArrowError> for ImportError {
fn from(err: ::arrow::error::ArrowError) -> Self {
ImportError::ArrowError(err.to_string())
}
}
impl From<::parquet::errors::ParquetError> for ImportError {
fn from(err: ::parquet::errors::ParquetError) -> Self {
ImportError::ParquetError(err.to_string())
}
}