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 AggregateError, AlterError, DeleteError, EvaluateError, ExecuteError, FetchError,
11 InsertError, SelectError, SortError, UpdateError, ValidateError,
12 },
13 plan::PlanError,
14 store::{AlterTableError, IndexError},
15 translate::TranslateError,
16};
17
18#[derive(ThisError, Serialize, Debug, PartialEq)]
19pub enum Error {
20 #[error("storage: {0}")]
21 StorageMsg(String),
22
23 #[error("parser: {0}")]
24 Parser(String),
25
26 #[error("translate: {0}")]
27 Translate(#[from] TranslateError),
28
29 #[error("ast-builder: {0}")]
30 AstBuilder(#[from] AstBuilderError),
31
32 #[error("alter-table: {0}")]
33 AlterTable(#[from] AlterTableError),
34 #[error("index: {0}")]
35 Index(#[from] IndexError),
36 #[error("execute: {0}")]
37 Execute(#[from] ExecuteError),
38 #[error("alter: {0}")]
39 Alter(#[from] AlterError),
40 #[error("fetch: {0}")]
41 Fetch(#[from] FetchError),
42 #[error("select: {0}")]
43 Select(#[from] SelectError),
44 #[error("evaluate: {0}")]
45 Evaluate(#[from] EvaluateError),
46 #[error("aggregate: {0}")]
47 Aggregate(#[from] AggregateError),
48 #[error("sort: {0}")]
49 Sort(#[from] SortError),
50 #[error("insert: {0}")]
51 Insert(#[from] InsertError),
52 #[error("update: {0}")]
53 Delete(#[from] DeleteError),
54 #[error("delete: {0}")]
55 Update(#[from] UpdateError),
56 #[error("table: {0}")]
57 Table(#[from] TableError),
58 #[error("validate: {0}")]
59 Validate(#[from] ValidateError),
60 #[error("row: {0}")]
61 Row(#[from] RowError),
62 #[error("key: {0}")]
63 Key(#[from] KeyError),
64 #[error("value: {0}")]
65 Value(#[from] ValueError),
66 #[error("convert: {0}")]
67 Convert(#[from] ConvertError),
68 #[error("literal: {0}")]
69 Literal(#[from] LiteralError),
70 #[error("interval: {0}")]
71 Interval(#[from] IntervalError),
72 #[error("string-ext: {0}")]
73 StringExt(#[from] StringExtError),
74 #[error("plan: {0}")]
75 Plan(#[from] PlanError),
76 #[error("schema-parse: {0}")]
77 Schema(#[from] SchemaParseError),
78}
79
80pub type Result<T, E = Error> = std::result::Result<T, E>;