mongreldb-query 0.55.0

DataFusion SQL + Arrow frontend for MongrelDB.
Documentation
use thiserror::Error;

pub type Result<T> = std::result::Result<T, MongrelQueryError>;

#[non_exhaustive]
#[derive(Debug, Error)]
pub enum MongrelQueryError {
    #[error("mongreldb error: {0}")]
    Core(#[from] mongreldb_core::MongrelError),
    #[error("arrow error: {0}")]
    Arrow(String),
    #[error("datafusion error: {0}")]
    DataFusion(String),
    #[error("schema error: {0}")]
    Schema(String),
    #[error("query {query_id} cancelled: {reason:?}")]
    QueryCancelled {
        query_id: crate::QueryId,
        reason: mongreldb_core::CancellationReason,
        completed_statements: usize,
        cancelled_statement_index: usize,
    },
    #[error("query {query_id} deadline exceeded")]
    DeadlineExceeded {
        query_id: crate::QueryId,
        timeout_ms: Option<u64>,
        completed_statements: usize,
        cancelled_statement_index: usize,
    },
    #[error("query id {query_id} is already active")]
    QueryIdConflict { query_id: crate::QueryId },
    #[error("SQL query registry is full")]
    QueryRegistryFull,
    #[error("transaction is aborted; only ROLLBACK is allowed")]
    TransactionAborted,
    #[error("query {query_id} commit outcome: committed={committed}: {message}")]
    CommitOutcome {
        query_id: crate::QueryId,
        committed: bool,
        message: String,
    },
    #[error("invalid query state: {0}")]
    InvalidQueryState(String),
}