pub mod columnar;
pub(crate) mod cte;
mod executor;
pub(crate) mod filter;
mod from_iterator;
pub(crate) mod grouping;
mod helpers;
mod iterator;
pub mod join;
#[allow(dead_code)] pub mod late_materialization;
#[cfg(feature = "parallel")]
pub mod morsel;
pub(crate) mod order;
#[cfg(feature = "parallel")]
mod parallel;
pub(crate) mod projection;
mod projection_simd;
pub(crate) mod scan;
mod set_operations;
mod vectorized;
pub(crate) mod view_reference_guard;
pub(crate) mod window;
pub use cte::CteResult;
pub use executor::validation::find_window_function_in_expression;
pub use iterator::{RowIterator, TableScanIterator};
pub use late_materialization::{
gather_columns, gather_single_column, LazyMaterializedBatch, RowReference, SelectionVector,
};
pub use window::WindowFunctionKey;
#[derive(Debug)]
pub struct SelectResult {
pub columns: Vec<String>,
pub rows: Vec<vibesql_storage::Row>,
}
pub use executor::{is_simple_point_query, is_streaming_aggregate_query, SelectExecutor};