@@ -7854,18 +7854,21 @@ fn parse_ctes() {
78547854
78557855 fn assert_ctes_in_select(expected: &[&str], sel: &Query) {
78567856 for (i, exp) in expected.iter().enumerate() {
7857- let Cte { alias, query, .. } = &sel.with.as_ref().unwrap().cte_tables[i];
7858- assert_eq!(*exp, query.to_string());
7859- assert_eq!(false, alias.explicit);
7857+ let cte = match &sel.with.as_ref().unwrap().items[i] {
7858+ WithItem::Cte(cte) => cte,
7859+ other => panic!("expected a CTE, got {other:?}"),
7860+ };
7861+ assert_eq!(*exp, cte.query.to_string());
7862+ assert_eq!(false, cte.alias.explicit);
78607863 assert_eq!(
78617864 if i == 0 {
78627865 Ident::new("a")
78637866 } else {
78647867 Ident::new("b")
78657868 },
7866- alias.name
7869+ cte. alias.name
78677870 );
7868- assert!(alias.columns.is_empty());
7871+ assert!(cte. alias.columns.is_empty());
78697872 }
78707873 }
78717874
@@ -7898,26 +7901,29 @@ fn parse_ctes() {
78987901 // CTE in a CTE...
78997902 let sql = &format!("WITH outer_cte AS ({with}) SELECT * FROM outer_cte");
79007903 let select = verified_query(sql);
7901- assert_ctes_in_select(&cte_sqls, &only(&select.with.unwrap().cte_tables).query);
7904+ let with = select.with.as_ref().unwrap();
7905+ let outer_cte = match only(&with.items) {
7906+ WithItem::Cte(cte) => cte,
7907+ other => panic!("expected a CTE, got {other:?}"),
7908+ };
7909+ assert_ctes_in_select(&cte_sqls, &outer_cte.query);
79027910}
79037911
79047912#[test]
79057913fn parse_cte_renamed_columns() {
79067914 let sql = "WITH cte (col1, col2) AS (SELECT foo, bar FROM baz) SELECT * FROM cte";
79077915 let query = all_dialects().verified_query(sql);
7916+ let with = query.with.unwrap();
7917+ let cte = match with.items.first().unwrap() {
7918+ WithItem::Cte(cte) => cte,
7919+ other => panic!("expected a CTE, got {other:?}"),
7920+ };
79087921 assert_eq!(
79097922 vec![
79107923 TableAliasColumnDef::from_name("col1"),
79117924 TableAliasColumnDef::from_name("col2")
79127925 ],
7913- query
7914- .with
7915- .unwrap()
7916- .cte_tables
7917- .first()
7918- .unwrap()
7919- .alias
7920- .columns
7926+ cte.alias.columns
79217927 );
79227928}
79237929
@@ -7931,8 +7937,8 @@ fn parse_recursive_cte() {
79317937
79327938 let with = query.with.as_ref().unwrap();
79337939 assert!(with.recursive);
7934- assert_eq!(with.cte_tables .len(), 1);
7935- let expected = Cte {
7940+ assert_eq!(with.items .len(), 1);
7941+ let expected = WithItem::Cte( Cte {
79367942 alias: TableAlias {
79377943 explicit: false,
79387944 name: Ident {
@@ -7947,8 +7953,8 @@ fn parse_recursive_cte() {
79477953 from: None,
79487954 materialized: None,
79497955 closing_paren_token: AttachedToken::empty(),
7950- };
7951- assert_eq!(with.cte_tables .first().unwrap(), &expected);
7956+ }) ;
7957+ assert_eq!(with.items .first().unwrap(), &expected);
79527958}
79537959
79547960#[test]
0 commit comments