Skip to main content

gluesql_core/executor/insert/
error.rs

1use {serde::Serialize, std::fmt::Debug, thiserror::Error};
2
3#[derive(Error, Serialize, Debug, PartialEq, Eq)]
4pub enum InsertError {
5    #[error("table not found: {0}")]
6    TableNotFound(String),
7
8    #[error("lack of required column: {0}")]
9    LackOfRequiredColumn(String),
10
11    #[error("wrong column name: {0}")]
12    WrongColumnName(String),
13
14    #[error("column and values not matched")]
15    ColumnAndValuesNotMatched,
16
17    #[error("literals have more values than target columns")]
18    TooManyValues,
19
20    #[error("only single value accepted for schemaless row insert: got {0}")]
21    OnlySingleValueAcceptedForSchemalessRow(usize),
22
23    #[error("map type required: {0}")]
24    MapTypeValueRequired(String),
25
26    #[error(
27        "cannot find referenced value on {table_name}.{column_name} with value {referenced_value:?}"
28    )]
29    CannotFindReferencedValue {
30        table_name: String,
31        column_name: String,
32        referenced_value: String,
33    },
34
35    #[error("unreachable referencing column name: {0}")]
36    ConflictReferencingColumnName(String),
37}