Skip to content

Commit 00b0a63

Browse files
committed
sql_parser: parser error fmt and refactoring
1 parent 59aa43e commit 00b0a63

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

47 files changed

+136
-100
lines changed

src/ast/create.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
use std::fmt::Display;
22

3-
use crate::ParsingError;
3+
use crate::parser::errors::ParsingError;
44

55
use super::{
66
ColumnDefinition, ConflictClause, DeleteStatement, Expression, ForeignKeyClause, Identifier,

src/ast/expression.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
use std::fmt::Display;
22

3-
use crate::{ParsingError, TokenType};
3+
use crate::{errors::ParsingError, TokenType};
44

55
use super::{OrderingTerm, SelectStatement};
66

src/parser/alter/mod.rs

+4-5
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
1-
use crate::{AlterTableStatement, AlterTableStatementType, Identifier, Keyword};
2-
3-
use super::{
4-
column_definition::ColumnDefinitionParser, expression::IdentifierParser, Parser, ParsingError,
5-
};
1+
use crate::column::ColumnDefinitionParser;
2+
use crate::expression::IdentifierParser;
3+
use crate::parser::errors::ParsingError;
4+
use crate::{AlterTableStatement, AlterTableStatementType, Identifier, Keyword, Parser};
65

76
pub trait AlterTableStatementParser {
87
fn parse_alter_table_statement(&mut self) -> Result<AlterTableStatement, ParsingError>;
File renamed without changes.

src/parser/create/create_index.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
1+
use crate::parser::errors::ParsingError;
12
use crate::{
23
expression::IdentifierParser,
34
parser::{insert::InsertStatementParser, select::SelectStatementParser},
4-
CreateIndexStatement, Keyword, Parser, ParsingError,
5+
CreateIndexStatement, Keyword, Parser,
56
};
67

78
use super::CreateStatementParser;

src/parser/create/create_table.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1+
use crate::parser::errors::ParsingError;
12
use crate::parser::{
2-
column_definition::ColumnDefinitionParser, insert::InsertStatementParser,
3-
select::SelectStatementParser,
3+
column::ColumnDefinitionParser, insert::InsertStatementParser, select::SelectStatementParser,
44
};
55
use crate::{
66
expression::{ExpressionParser, IdentifierParser},
77
ColumnDefinition, CreateTableColumnDef, CreateTableOption, CreateTableStatement, Keyword,
8-
Parser, ParsingError, TableConstraint, TableConstraintType, TableOption, TokenType,
8+
Parser, TableConstraint, TableConstraintType, TableOption, TokenType,
99
};
1010

1111
use super::CreateStatementParser;

src/parser/create/create_trigger.rs

+5-5
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1+
use super::CreateStatementParser;
2+
use crate::expression::{ExpressionParser, IdentifierParser};
3+
use crate::parser::errors::ParsingError;
14
use crate::{
2-
expression::{ExpressionParser, IdentifierParser},
3-
CreateTriggerStatement, Expression, Keyword, Parser, ParsingError, TokenType, TriggerEvent,
4-
TriggerEventType, TriggerPreCondition, TriggerStatement,
5+
CreateTriggerStatement, Expression, Keyword, Parser, TokenType, TriggerEvent, TriggerEventType,
6+
TriggerPreCondition, TriggerStatement,
57
};
68

7-
use super::CreateStatementParser;
8-
99
pub trait CreateTriggerStatementParser {
1010
fn parse_create_trigger_statement(
1111
&mut self,

src/parser/create/create_view.rs

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1+
use super::CreateStatementParser;
2+
use crate::expression::IdentifierParser;
3+
use crate::parser::errors::ParsingError;
14
use crate::{
2-
expression::IdentifierParser,
35
parser::{insert::InsertStatementParser, select::SelectStatementParser},
4-
CreateViewStatement, Keyword, Parser, ParsingError,
6+
CreateViewStatement, Keyword, Parser,
57
};
68

7-
use super::CreateStatementParser;
8-
99
pub trait CreateViewStatementParser {
1010
fn parse_create_view_statement(
1111
&mut self,

src/parser/create/create_virtual_table.rs

+3-5
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,7 @@
1-
use crate::{
2-
expression::{ExpressionParser, IdentifierParser},
3-
CreateVirtualTableStatement, Expression, Keyword, Parser, ParsingError, TokenType,
4-
};
5-
61
use super::CreateStatementParser;
2+
use crate::expression::{ExpressionParser, IdentifierParser};
3+
use crate::parser::errors::ParsingError;
4+
use crate::{CreateVirtualTableStatement, Expression, Keyword, Parser, TokenType};
75

86
pub trait CreateVirtualTableStatementParser {
97
fn parse_create_virtual_table_statement(

src/parser/drop/drop_generic.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
use crate::{expression::IdentifierParser, Identifier, Keyword, Parser, ParsingError};
1+
use crate::parser::errors::ParsingError;
2+
use crate::{expression::IdentifierParser, Identifier, Keyword, Parser};
23

34
pub trait DropGenericStatementParser {
45
fn parse_drop_statement_generic(&mut self) -> Result<(bool, Identifier), ParsingError>;

src/parser/drop/drop_index.rs

+4-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
use crate::{DropIndexStatement, Keyword, Parser, ParsingError, Statement};
2-
31
use super::DropGenericStatementParser;
2+
use crate::parser::errors::ParsingError;
3+
use crate::{DropIndexStatement, Keyword, Parser, Statement};
44

55
pub trait DropIndexStatementParser {
66
fn parse_drop_index_statement(&mut self) -> Result<Statement, ParsingError>;
@@ -34,8 +34,9 @@ pub mod test_utils {
3434
#[cfg(test)]
3535
mod drop_index_tests {
3636
use crate::ast::DropIndexStatement;
37+
use crate::parser::errors::ParsingError;
3738
use crate::parser::test_utils::{run_rainy_day_test, run_sunny_day_test};
38-
use crate::{Identifier, Parser, ParsingError, Statement};
39+
use crate::{Identifier, Parser, Statement};
3940

4041
#[test]
4142
fn test_drop_index_valid() {

src/parser/drop/drop_table.rs

+4-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
use crate::{DropTableStatement, Keyword, Parser, ParsingError, Statement};
1+
use crate::parser::errors::ParsingError;
2+
use crate::{DropTableStatement, Keyword, Parser, Statement};
23

34
use super::DropGenericStatementParser;
45

@@ -34,8 +35,9 @@ pub mod test_utils {
3435
#[cfg(test)]
3536
mod drop_table_tests {
3637
use crate::ast::DropTableStatement;
38+
use crate::parser::errors::ParsingError;
3739
use crate::parser::test_utils::{run_rainy_day_test, run_sunny_day_test};
38-
use crate::{Identifier, Parser, ParsingError, Statement};
40+
use crate::{Identifier, Parser, Statement};
3941

4042
#[test]
4143
fn test_drop_table_valid() {

src/parser/drop/drop_trigger.rs

+4-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
use crate::{DropTriggerStatement, Keyword, Parser, ParsingError, Statement};
2-
31
use super::DropGenericStatementParser;
2+
use crate::parser::errors::ParsingError;
3+
use crate::{DropTriggerStatement, Keyword, Parser, Statement};
44

55
pub trait DropTriggerStatementParser {
66
fn parse_drop_trigger_statement(&mut self) -> Result<Statement, ParsingError>;
@@ -34,8 +34,9 @@ pub mod test_utils {
3434
#[cfg(test)]
3535
mod drop_trigger_tests {
3636
use crate::ast::DropTriggerStatement;
37+
use crate::parser::errors::ParsingError;
3738
use crate::parser::test_utils::{run_rainy_day_test, run_sunny_day_test};
38-
use crate::{Identifier, Parser, ParsingError, Statement};
39+
use crate::{Identifier, Parser, Statement};
3940

4041
#[test]
4142
fn test_drop_trigger_valid() {

src/parser/drop/drop_view.rs

+4-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
use crate::{DropViewStatement, Keyword, Parser, ParsingError, Statement};
1+
use crate::parser::errors::ParsingError;
2+
use crate::{DropViewStatement, Keyword, Parser, Statement};
23

34
use super::DropGenericStatementParser;
45

@@ -34,8 +35,9 @@ pub mod test_utils {
3435
#[cfg(test)]
3536
mod drop_view_tests {
3637
use crate::ast::DropViewStatement;
38+
use crate::parser::errors::ParsingError;
3739
use crate::parser::test_utils::{run_rainy_day_test, run_sunny_day_test};
38-
use crate::{Identifier, Parser, ParsingError, Statement};
40+
use crate::{Identifier, Parser, Statement};
3941

4042
#[test]
4143
fn test_drop_view_valid() {

src/parser/drop/mod.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,8 @@ use drop_table::*;
1010
use drop_trigger::*;
1111
use drop_view::*;
1212

13-
use crate::{Keyword, Parser, ParsingError, Statement};
13+
use crate::parser::errors::ParsingError;
14+
use crate::{Keyword, Parser, Statement};
1415

1516
pub trait DropStatementParser {
1617
fn parse_drop_statement(&mut self) -> Result<Statement, ParsingError>;

src/parser/expression/between_expr.rs

+2-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
1-
use crate::{
2-
BetweenExpression, BinaryMatchingExpression, Expression, Keyword, Parser, ParsingError,
3-
};
1+
use crate::parser::errors::ParsingError;
2+
use crate::{BetweenExpression, BinaryMatchingExpression, Expression, Keyword, Parser};
43

54
use super::ExpressionParser;
65

src/parser/expression/case_expr.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
use crate::{CaseExpression, Expression, Keyword, Parser, ParsingError, WhenExpression};
1+
use crate::parser::errors::ParsingError;
2+
use crate::{CaseExpression, Expression, Keyword, Parser, WhenExpression};
23

34
use super::ExpressionParser;
45

src/parser/expression/cast_expr.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
use crate::{Expression, Keyword, Parser, ParsingError, TokenType};
1+
use crate::parser::errors::ParsingError;
2+
use crate::{Expression, Keyword, Parser, TokenType};
23

34
use super::{data_type::DataTypeParser, ExpressionParser};
45

src/parser/expression/collate_expr.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
use crate::{CollateExpressionStatement, Expression, Keyword, Parser, ParsingError};
1+
use crate::parser::errors::ParsingError;
2+
use crate::{CollateExpressionStatement, Expression, Keyword, Parser};
23

34
pub trait CollateExpressionParser {
45
/// Parse a COLLATE expression, i.e. an expression followed by the COLLATE keyword and a string literal

src/parser/expression/data_type.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
use crate::{DataType, TokenType};
22

3-
use super::{Parser, ParsingError};
3+
use super::Parser;
4+
use crate::parser::errors::ParsingError;
45

56
/// Trait for parsing a [DataType](https://www.sqlite.org/syntax/type-name.html)
67
pub trait DataTypeParser {

src/parser/expression/exists_expr.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
1+
use crate::parser::errors::ParsingError;
12
use crate::parser::select::SelectStatementParser;
2-
use crate::{ExistsStatement, Expression, Keyword, Parser, ParsingError, TokenType};
3+
use crate::{ExistsStatement, Expression, Keyword, Parser, TokenType};
34

45
pub trait ExistsExpressionParser {
56
fn parse_exists_expression(&mut self, is_not: bool) -> Result<Expression, ParsingError>;

src/parser/expression/function_expr.rs

+3-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
1+
use crate::parser::errors::ParsingError;
12
use crate::{
2-
parser::window_definition::WindowDefinitionParser, Expression, Function, FunctionArg,
3-
FunctionArgType, Identifier, Keyword, OverClause, Parser, ParsingError, TokenType,
3+
parser::window::WindowDefinitionParser, Expression, Function, FunctionArg, FunctionArgType,
4+
Identifier, Keyword, OverClause, Parser, TokenType,
45
};
56

67
use super::ExpressionParser;

src/parser/expression/identifier.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
use crate::{Identifier, Parser, ParsingError, TokenType};
1+
use crate::parser::errors::ParsingError;
2+
use crate::{Identifier, Parser, TokenType};
23

34
pub trait IdentifierParser {
45
/// Parse an identifier

src/parser/expression/in_expr.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
1+
use crate::parser::errors::ParsingError;
12
use crate::{
23
parser::select::SelectStatementParser, BinaryMatchingExpression, Expression, Identifier,
3-
InExpression, Keyword, Parser, ParsingError, TokenType,
4+
InExpression, Keyword, Parser, TokenType,
45
};
56

67
use super::ExpressionParser;

src/parser/expression/is_expr.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
use crate::{AnIsExpression, BinaryMatchingExpression, Expression, Keyword, Parser, ParsingError};
1+
use crate::parser::errors::ParsingError;
2+
use crate::{AnIsExpression, BinaryMatchingExpression, Expression, Keyword, Parser};
23

34
use super::ExpressionParser;
45

src/parser/expression/like_expr.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1+
use crate::parser::errors::ParsingError;
12
use crate::{
23
BinaryMatchingExpression, EscapeExpression, Expression, Keyword, LikeExpressionType, Parser,
3-
ParsingError,
44
};
55

66
use super::ExpressionParser;

src/parser/expression/mod.rs

+3-2
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,10 @@ mod like_expr;
1212
mod raise_expr;
1313
mod regexp_match_expr;
1414

15+
use crate::parser::errors::ParsingError;
1516
use crate::{
16-
BinaryOp, Expression, Keyword, LiteralValue, Parser, ParsingError, TokenType,
17-
UnaryMatchingExpression, UnaryOp,
17+
BinaryOp, Expression, Keyword, LiteralValue, Parser, TokenType, UnaryMatchingExpression,
18+
UnaryOp,
1819
};
1920
use between_expr::BetweenExpressionParser;
2021
use case_expr::CaseExpressionParser;

src/parser/expression/raise_expr.rs

+4-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
use crate::{Expression, Keyword, Parser, ParsingError, RaiseFunction, TokenType};
1+
use crate::parser::errors::ParsingError;
2+
use crate::{Expression, Keyword, Parser, RaiseFunction, TokenType};
23

34
pub trait RaiseExpressionParser {
45
fn parse_raise_expression(&mut self) -> Result<Expression, ParsingError>;
@@ -58,7 +59,8 @@ impl<'a> RaiseExpressionParser for Parser<'a> {
5859

5960
#[cfg(test)]
6061
mod raise_expression_tests {
61-
use crate::{parser::test_utils::run_rainy_day_test, ParsingError, RaiseFunction};
62+
use crate::parser::ParsingError;
63+
use crate::{parser::test_utils::run_rainy_day_test, RaiseFunction};
6264

6365
use crate::expression::test_utils::*;
6466

src/parser/expression/regexp_match_expr.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
use crate::{BinaryMatchingExpression, Expression, Keyword, Parser, ParsingError};
1+
use crate::parser::errors::ParsingError;
2+
use crate::{BinaryMatchingExpression, Expression, Keyword, Parser};
23

34
use super::ExpressionParser;
45

src/parser/mod.rs

+7-7
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
use std::iter::Peekable;
22

33
pub mod alter;
4-
pub mod column_definition;
4+
pub mod column;
55
pub mod create;
66
pub mod cte;
77
pub mod delete;
@@ -14,10 +14,7 @@ pub mod select;
1414
pub mod sqlite;
1515
pub mod trx;
1616
pub mod update;
17-
pub mod window_definition;
18-
19-
#[cfg(test)]
20-
mod test_utils;
17+
pub mod window;
2118

2219
use crate::{
2320
IndexedType, Keyword, LimitClause, OrderingTerm, SelectStatement, Statement, Token, TokenType,
@@ -28,15 +25,18 @@ use create::*;
2825
use cte::CteStatementParser;
2926
use delete::DeleteStatementParser;
3027
use drop::DropStatementParser;
31-
pub use errors::*;
28+
use errors::*;
3229
use explain::ExplainStatementParser;
3330
use expression::ExpressionParser;
3431
use insert::InsertStatementParser;
3532
use select::{SelectStatementParser, ValuesStatementParser};
3633
use sqlite::SQLite3StatementParser;
3734
use trx::TransactionStatementParser;
3835
use update::UpdateStatementParser;
39-
use window_definition::WindowDefinitionParser;
36+
use window::WindowDefinitionParser;
37+
38+
#[cfg(test)]
39+
mod test_utils;
4040

4141
/// A parser for SQLite SQL statements
4242
pub struct Parser<'a> {

src/parser/select/mod.rs

+5-5
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,10 @@ use crate::{
88
};
99

1010
use super::expression::ExpressionParser;
11-
use super::window_definition::WindowDefinitionParser;
12-
use super::{Parser, ParsingError};
11+
use super::window::WindowDefinitionParser;
12+
use super::Parser;
1313
use crate::ast::{Select, SelectItem, SelectStatement};
14+
use crate::parser::errors::ParsingError;
1415
pub use values::ValuesStatementParser;
1516

1617
/// Trait for parsing SELECT statements
@@ -592,13 +593,12 @@ pub mod test_utils {
592593
#[cfg(test)]
593594
mod test_select_result_columns {
594595
use crate::{
595-
BinaryOp, DistinctType, Expression, Identifier, ParsingError, SelectItem, SelectStatement,
596-
Statement,
596+
BinaryOp, DistinctType, Expression, Identifier, SelectItem, SelectStatement, Statement,
597597
};
598598

599599
use super::test_utils::*;
600600
use crate::parser::expression::test_utils::*;
601-
use crate::parser::test_utils::*;
601+
use crate::parser::{test_utils::*, ParsingError};
602602

603603
#[test]
604604
fn test_select_distinct() {

src/parser/select/values.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1+
use crate::parser::errors::ParsingError;
12
use crate::{
2-
expression::ExpressionParser, Expression, Keyword, Parser, ParsingError, TokenType,
3-
ValuesStatement,
3+
expression::ExpressionParser, Expression, Keyword, Parser, TokenType, ValuesStatement,
44
};
55

66
pub trait ValuesStatementParser {

0 commit comments

Comments
 (0)