mod covering;
mod eval;
mod grouped;
mod materialize;
#[cfg(test)]
mod tests;
#[cfg(feature = "sql")]
pub(in crate::db) use covering::{
CoveringProjectionMetricsRecorder, try_execute_covering_projection_rows_for_canister,
};
#[cfg(all(feature = "sql", feature = "diagnostics"))]
pub(in crate::db) use covering::{
current_pure_covering_decode_local_instructions,
current_pure_covering_row_assembly_local_instructions,
};
pub(in crate::db) use eval::{
ProjectionEvalError, ScalarProjectionExpr,
eval_canonical_scalar_projection_expr_with_required_value_reader_cow,
eval_effective_runtime_filter_program_with_value_cow_reader,
eval_effective_runtime_filter_program_with_value_ref_reader,
};
pub(in crate::db::executor) use eval::{
eval_scalar_projection_expr_with_value_reader,
eval_scalar_projection_expr_with_value_ref_reader,
};
pub(in crate::db::executor) use grouped::*;
pub(in crate::db) use grouped::{
GroupedProjectionExpr, GroupedRowView, compile_grouped_projection_expr,
eval_grouped_projection_expr, evaluate_grouped_having_expr,
};
#[cfg(test)]
pub(in crate::db) use materialize::PreparedProjectionPlan;
#[cfg(test)]
pub(in crate::db::executor::projection) use materialize::project_rows_from_projection;
pub(in crate::db) use materialize::{
PreparedProjectionShape, ProjectionMaterializationMetricsRecorder,
prepare_projection_shape_from_plan, project_structural_projection_page,
visit_prepared_projection_values_with_required_value_reader_cow,
};
pub(in crate::db::executor) use materialize::{
PreparedSlotProjectionValidation, ProjectionValidationRow, validate_prepared_projection_row,
};
#[cfg(test)]
pub(in crate::db) use tests::projection_eval_data_row_for_materialize_tests;
#[cfg(test)]
pub(in crate::db) use tests::projection_eval_row_layout_for_materialize_tests;