@@ -706,60 +706,66 @@ mod limit_clause_tests {
706
706
}
707
707
}
708
708
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