Skip to main content

sqlglot_rust/errors/
mod.rs

1use thiserror::Error;
2
3use crate::tokens::Token;
4
5/// Errors that may occur during SQL parsing, generation, or optimization.
6#[derive(Debug, Error)]
7pub enum SqlglotError {
8    /// An error occurred during tokenization.
9    #[error("Tokenizer error at position {position}: {message}")]
10    TokenizerError { message: String, position: usize },
11
12    /// An error occurred during parsing.
13    #[error("Parser error: {message}")]
14    ParserError { message: String },
15
16    /// An unexpected token was encountered.
17    #[error("Unexpected token: {token:?}")]
18    UnexpectedToken { token: Token },
19
20    /// An unsupported feature was encountered for the target dialect.
21    #[error("Unsupported feature for dialect: {0}")]
22    UnsupportedDialectFeature(String),
23
24    /// A generic internal error.
25    #[error("Internal error: {0}")]
26    Internal(String),
27}
28
29/// Convenience alias for results that can fail with [`SqlglotError`].
30pub type Result<T> = std::result::Result<T, SqlglotError>;