1use {serde::Serialize, std::fmt::Debug, thiserror::Error as ThisError};
2
3pub use crate::{
4 ast_builder::AstBuilderError,
5 data::{
6 ConvertError, IntervalError, KeyError, LiteralError, RowError, SchemaParseError,
7 StringExtError, TableError, ValueError,
8 },
9 executor::{
10 AlterError, DeleteError, EvaluateError, ExecuteError, FetchError, InsertError, SelectError,
11 SortError, UpdateError, ValidateError,
12 },
13 plan::PlanError,
14 row_conversion::RowConversionError,
15 store::{AlterTableError, IndexError},
16 translate::TranslateError,
17};
18
19#[derive(ThisError, Serialize, Debug, PartialEq)]
20pub enum Error {
21 #[error("storage: {0}")]
22 StorageMsg(String),
23
24 #[error("parser: {0}")]
25 Parser(String),
26
27 #[error("translate: {0}")]
28 Translate(#[from] TranslateError),
29
30 #[error("ast-builder: {0}")]
31 AstBuilder(#[from] AstBuilderError),
32
33 #[error("alter-table: {0}")]
34 AlterTable(#[from] AlterTableError),
35 #[error("index: {0}")]
36 Index(#[from] IndexError),
37 #[error("execute: {0}")]
38 Execute(#[from] ExecuteError),
39 #[error("alter: {0}")]
40 Alter(Box<AlterError>),
41 #[error("fetch: {0}")]
42 Fetch(#[from] FetchError),
43 #[error("select: {0}")]
44 Select(#[from] SelectError),
45 #[error("evaluate: {0}")]
46 Evaluate(#[from] EvaluateError),
47 #[error("sort: {0}")]
48 Sort(#[from] SortError),
49 #[error("insert: {0}")]
50 Insert(#[from] InsertError),
51 #[error("update: {0}")]
52 Delete(#[from] DeleteError),
53 #[error("delete: {0}")]
54 Update(#[from] UpdateError),
55 #[error("table: {0}")]
56 Table(#[from] TableError),
57 #[error("validate: {0}")]
58 Validate(#[from] ValidateError),
59 #[error("row: {0}")]
60 Row(#[from] RowError),
61 #[error("key: {0}")]
62 Key(#[from] KeyError),
63 #[error("value: {0}")]
64 Value(Box<ValueError>),
65 #[error("convert: {0}")]
66 Convert(#[from] ConvertError),
67 #[error("literal: {0}")]
68 Literal(#[from] LiteralError),
69 #[error("interval: {0}")]
70 Interval(#[from] IntervalError),
71 #[error("string-ext: {0}")]
72 StringExt(#[from] StringExtError),
73 #[error("plan: {0}")]
74 Plan(#[from] PlanError),
75 #[error("schema-parse: {0}")]
76 Schema(#[from] SchemaParseError),
77
78 #[error("row-conversion: {0}")]
79 RowConversion(#[from] RowConversionError),
80}
81
82pub type Result<T, E = Error> = std::result::Result<T, E>;
83
84impl From<AlterError> for Error {
85 fn from(e: AlterError) -> Error {
86 Error::Alter(Box::new(e))
87 }
88}
89
90impl From<ValueError> for Error {
91 fn from(e: ValueError) -> Error {
92 Error::Value(Box::new(e))
93 }
94}