proof_of_sql/sql/postprocessing/
error.rsuse alloc::string::String;
use proof_of_sql_parser::Identifier;
use snafu::Snafu;
#[derive(Snafu, Debug, PartialEq, Eq)]
pub enum PostprocessingError {
#[snafu(display("Error in slicing due to slice index beyond usize {index}"))]
InvalidSliceIndex {
index: i128,
},
#[snafu(display("Column not found: {column}"))]
ColumnNotFound {
column: String,
},
#[snafu(transparent)]
ExpressionEvaluationError {
source: crate::base::database::ExpressionEvaluationError,
},
#[snafu(transparent)]
OwnedTableError {
source: crate::base::database::OwnedTableError,
},
#[snafu(display("Invalid group by: column '{column}' must not appear outside aggregate functions or `GROUP BY` clause."))]
IdentifierNotInAggregationOperatorOrGroupByClause {
column: Identifier,
},
#[snafu(transparent)]
AggregateColumnsError {
source: crate::base::database::group_by_util::AggregateColumnsError,
},
#[snafu(transparent)]
OwnedColumnError {
source: crate::base::database::OwnedColumnError,
},
#[snafu(display("Nested aggregation in `GROUP BY` clause: {error}"))]
NestedAggregationInGroupByClause {
error: String,
},
}
pub type PostprocessingResult<T> = core::result::Result<T, PostprocessingError>;