@@ -10568,47 +10568,49 @@ fn parse_unpivot_table() {
1056810568 "SELECT * FROM sales AS s " ,
1056910569 "UNPIVOT(quantity FOR quarter IN (Q1, Q2, Q3, Q4)) AS u (product, quarter, quantity)"
1057010570 ) ;
10571- let base_unpivot = Unpivot {
10572- table : Box :: new ( TableFactor :: Table {
10573- name : ObjectName :: from ( vec ! [ Ident :: new( "sales" ) ] ) ,
10574- alias : Some ( TableAlias {
10575- name : Ident :: new ( "s" ) ,
10576- columns : vec ! [ ] ,
10571+
10572+ pretty_assertions:: assert_eq!(
10573+ verified_only_select( sql) . from[ 0 ] . relation,
10574+ Unpivot {
10575+ table: Box :: new( TableFactor :: Table {
10576+ name: ObjectName :: from( vec![ Ident :: new( "sales" ) ] ) ,
10577+ alias: Some ( TableAlias {
10578+ name: Ident :: new( "s" ) ,
10579+ columns: vec![ ]
10580+ } ) ,
10581+ args: None ,
10582+ with_hints: vec![ ] ,
10583+ version: None ,
10584+ partitions: vec![ ] ,
10585+ with_ordinality: false ,
10586+ json_path: None ,
10587+ sample: None ,
10588+ index_hints: vec![ ] ,
1057710589 } ) ,
10578- args : None ,
10579- with_hints : vec ! [ ] ,
10580- version : None ,
10581- partitions : vec ! [ ] ,
10582- with_ordinality : false ,
10583- json_path : None ,
10584- sample : None ,
10585- index_hints : vec ! [ ] ,
10586- } ) ,
10587- include_nulls : None ,
10588- value : Ident {
10589- value : "quantity" . to_string ( ) ,
10590- quote_style : None ,
10591- span : Span :: empty ( ) ,
10592- } ,
10590+ value: Ident {
10591+ value: "quantity" . to_string( ) ,
10592+ quote_style: None ,
10593+ span: Span :: empty( )
10594+ } ,
1059310595
10594- name : Ident {
10595- value : "quarter" . to_string ( ) ,
10596- quote_style : None ,
10597- span : Span :: empty ( ) ,
10598- } ,
10599- columns : [ "Q1" , "Q2" , "Q3" , "Q4" ]
10600- . into_iter ( )
10601- . map ( Ident :: new)
10602- . collect ( ) ,
10603- alias : Some ( TableAlias {
10604- name : Ident :: new ( "u" ) ,
10605- columns : [ "product" , "quarter" , "quantity" ]
10596+ name: Ident {
10597+ value: "quarter" . to_string( ) ,
10598+ quote_style: None ,
10599+ span: Span :: empty( )
10600+ } ,
10601+ columns: [ "Q1" , "Q2" , "Q3" , "Q4" ]
1060610602 . into_iter( )
10607- . map ( TableAliasColumnDef :: from_name )
10603+ . map( Ident :: new )
1060810604 . collect( ) ,
10609- } ) ,
10610- } ;
10611- pretty_assertions:: assert_eq!( verified_only_select( sql) . from[ 0 ] . relation, base_unpivot) ;
10605+ alias: Some ( TableAlias {
10606+ name: Ident :: new( "u" ) ,
10607+ columns: [ "product" , "quarter" , "quantity" ]
10608+ . into_iter( )
10609+ . map( TableAliasColumnDef :: from_name)
10610+ . collect( ) ,
10611+ } ) ,
10612+ }
10613+ ) ;
1061210614 assert_eq ! ( verified_stmt( sql) . to_string( ) , sql) ;
1061310615
1061410616 let sql_without_aliases = concat ! (
@@ -10628,38 +10630,6 @@ fn parse_unpivot_table() {
1062810630 verified_stmt( sql_without_aliases) . to_string( ) ,
1062910631 sql_without_aliases
1063010632 ) ;
10631-
10632- let sql_unpivot_exclude_nulls = concat ! (
10633- "SELECT * FROM sales AS s " ,
10634- "UNPIVOT EXCLUDE NULLS (quantity FOR quarter IN (Q1, Q2, Q3, Q4)) AS u (product, quarter, quantity)"
10635- ) ;
10636-
10637- if let Unpivot { include_nulls, .. } =
10638- & verified_only_select ( sql_unpivot_exclude_nulls) . from [ 0 ] . relation
10639- {
10640- assert_eq ! ( * include_nulls, Some ( false ) ) ;
10641- }
10642-
10643- assert_eq ! (
10644- verified_stmt( sql_unpivot_exclude_nulls) . to_string( ) ,
10645- sql_unpivot_exclude_nulls
10646- ) ;
10647-
10648- let sql_unpivot_include_nulls = concat ! (
10649- "SELECT * FROM sales AS s " ,
10650- "UNPIVOT INCLUDE NULLS (quantity FOR quarter IN (Q1, Q2, Q3, Q4)) AS u (product, quarter, quantity)"
10651- ) ;
10652-
10653- if let Unpivot { include_nulls, .. } =
10654- & verified_only_select ( sql_unpivot_include_nulls) . from [ 0 ] . relation
10655- {
10656- assert_eq ! ( * include_nulls, Some ( true ) ) ;
10657- }
10658-
10659- assert_eq ! (
10660- verified_stmt( sql_unpivot_include_nulls) . to_string( ) ,
10661- sql_unpivot_include_nulls
10662- ) ;
1066310633}
1066410634
1066510635#[ test]
@@ -10756,7 +10726,6 @@ fn parse_pivot_unpivot_table() {
1075610726 sample: None ,
1075710727 index_hints: vec![ ] ,
1075810728 } ) ,
10759- include_nulls: None ,
1076010729 value: Ident {
1076110730 value: "population" . to_string( ) ,
1076210731 quote_style: None ,
0 commit comments