use typed_arrow_dyn::DynViewError;
use crate::{
db::KeyExtractError, manifest::ManifestError, ondisk::sstable::SsTableError,
query::stream::StreamError, transaction::SnapshotError,
};
#[derive(Debug, thiserror::Error)]
pub enum DBError {
#[error("key extract error: {0}")]
Key(#[from] KeyExtractError),
#[error("manifest error: {0}")]
Manifest(#[from] ManifestError),
#[error("stream error: {0}")]
Stream(#[from] StreamError),
#[error("sstable error: {0}")]
SsTable(#[from] SsTableError),
#[error("snapshot error: {0}")]
Snapshot(#[from] SnapshotError),
#[error("dynamic view error: {0}")]
DynView(#[from] DynViewError),
#[error("unsupported predicate: {reason}")]
UnsupportedPredicate {
reason: String,
},
}