Skip to content

Commit bfca0b0

Browse files
committed
sql_parser: select parser tests refactoring (6)
1 parent c838f6b commit bfca0b0

File tree

1 file changed

+63
-57
lines changed

1 file changed

+63
-57
lines changed

src/parser/select/mod.rs

+63-57
Original file line numberDiff line numberDiff line change
@@ -706,60 +706,66 @@ mod limit_clause_tests {
706706
}
707707
}
708708

709-
// #[cfg(test)]
710-
// mod test_select_with_cte {
711-
// use super::super::cte::test_utils::cte_expression;
712-
// use super::test_utils::{select_from, select_statement_with_cte_clause};
713-
// use crate::parser::test_utils::*;
714-
// use crate::{FromClause, Identifier, QualifiedTableName};
715-
716-
// #[test]
717-
// fn test_select_cte_clause() {
718-
// let expected_statement = select_statement_with_cte_clause(
719-
// true,
720-
// vec![cte_expression(
721-
// Identifier::Single("cte_1".to_string()),
722-
// vec![],
723-
// None,
724-
// select_from(FromClause::Table(QualifiedTableName::from(
725-
// Identifier::Single("cte_table".to_string()),
726-
// ))),
727-
// )],
728-
// );
729-
730-
// run_sunny_day_test(
731-
// "WITH RECURSIVE cte_1 AS (SELECT * FROM cte_table) SELECT * FROM table_1",
732-
// expected_statement,
733-
// );
734-
// }
735-
736-
// #[test]
737-
// fn test_select_with_multiple_ctes() {
738-
// let expected_statement = select_statement_with_cte_clause(
739-
// true,
740-
// vec![
741-
// cte_expression(
742-
// Identifier::Single("cte_1".to_string()),
743-
// vec![],
744-
// None,
745-
// select_from(FromClause::Table(QualifiedTableName::from(
746-
// Identifier::Single("cte_table1".to_string()),
747-
// ))),
748-
// ),
749-
// cte_expression(
750-
// Identifier::Single("cte_2".to_string()),
751-
// vec![],
752-
// None,
753-
// select_from(FromClause::Table(QualifiedTableName::from(
754-
// Identifier::Single("cte_table2".to_string()),
755-
// ))),
756-
// ),
757-
// ],
758-
// );
759-
760-
// run_sunny_day_test(
761-
// "WITH RECURSIVE cte_1 AS (SELECT * FROM cte_table1), cte_2 AS (SELECT * FROM cte_table2) SELECT * FROM table_1",
762-
// expected_statement,
763-
// );
764-
// }
765-
// }
709+
#[cfg(test)]
710+
mod with_cte_tests {
711+
use super::test_utils::{select_from, select_stmt};
712+
use crate::parser::cte::test_utils::cte_expression;
713+
use crate::parser::test_utils::*;
714+
use crate::{CteExpression, FromClause, Identifier, QualifiedTableName, WithCteStatement};
715+
716+
#[test]
717+
fn cte_clause() {
718+
let mut expected_statement = select_stmt();
719+
expected_statement.with_cte = Some(WithCteStatement {
720+
recursive: true,
721+
cte_expressions: vec![CteExpression {
722+
name: Identifier::Single("cte_1".to_string()),
723+
column_names: vec![],
724+
materialized: None,
725+
select: select_from(FromClause::Table(QualifiedTableName::from(
726+
Identifier::Single("cte_table".to_string()),
727+
))),
728+
}],
729+
});
730+
731+
run_sunny_day_test(
732+
"WITH RECURSIVE cte_1 AS (SELECT * FROM cte_table) SELECT * FROM table_name1",
733+
expected_statement.into(),
734+
);
735+
}
736+
737+
#[test]
738+
fn with_multiple_ctes() {
739+
let mut expected_statement = select_stmt();
740+
741+
expected_statement.with_cte = Some(WithCteStatement {
742+
recursive: true,
743+
cte_expressions: vec![
744+
cte_expression(
745+
Identifier::Single("cte_1".to_string()),
746+
vec![],
747+
None,
748+
select_from(FromClause::Table(QualifiedTableName::from(
749+
Identifier::Single("cte_table1".to_string()),
750+
))),
751+
),
752+
cte_expression(
753+
Identifier::Single("cte_2".to_string()),
754+
vec![],
755+
None,
756+
select_from(FromClause::Table(QualifiedTableName::from(
757+
Identifier::Single("cte_table2".to_string()),
758+
))),
759+
),
760+
],
761+
});
762+
763+
run_sunny_day_test(
764+
"WITH RECURSIVE
765+
cte_1 AS (SELECT * FROM cte_table1),
766+
cte_2 AS (SELECT * FROM cte_table2)
767+
SELECT * FROM table_name1",
768+
expected_statement.into(),
769+
);
770+
}
771+
}

0 commit comments

Comments
 (0)