Skip to main content

mongreldb_query/
error.rs

1use thiserror::Error;
2
3pub type Result<T> = std::result::Result<T, MongrelQueryError>;
4
5#[non_exhaustive]
6#[derive(Debug, Error)]
7pub enum MongrelQueryError {
8    #[error("mongreldb error: {0}")]
9    Core(#[from] mongreldb_core::MongrelError),
10    #[error("arrow error: {0}")]
11    Arrow(String),
12    #[error("datafusion error: {0}")]
13    DataFusion(String),
14    #[error("schema error: {0}")]
15    Schema(String),
16    #[error("query {query_id} cancelled: {reason:?}")]
17    QueryCancelled {
18        query_id: crate::QueryId,
19        reason: mongreldb_core::CancellationReason,
20        completed_statements: usize,
21        cancelled_statement_index: usize,
22    },
23    #[error("query {query_id} deadline exceeded")]
24    DeadlineExceeded {
25        query_id: crate::QueryId,
26        timeout_ms: Option<u64>,
27        completed_statements: usize,
28        cancelled_statement_index: usize,
29    },
30    #[error("query id {query_id} is already active")]
31    QueryIdConflict { query_id: crate::QueryId },
32    #[error("SQL query registry is full")]
33    QueryRegistryFull,
34    #[error("transaction is aborted; only ROLLBACK is allowed")]
35    TransactionAborted,
36    #[error("query {query_id} commit outcome: committed={committed}: {message}")]
37    CommitOutcome {
38        query_id: crate::QueryId,
39        committed: bool,
40        message: String,
41    },
42    #[error("invalid query state: {0}")]
43    InvalidQueryState(String),
44}