@@ -2536,6 +2536,11 @@ fn parse_mssql_go_keyword() {
25362536 assert_eq ! ( stmts. len( ) , 2 ) ;
25372537 assert_eq ! ( stmts[ 1 ] , Statement :: Go ( GoStatement { count: Some ( 5 ) } ) ) ;
25382538
2539+ let go_statement_delimiter = "SELECT 1\n GO" ;
2540+ let stmts = ms ( ) . parse_sql_statements ( go_statement_delimiter) . unwrap ( ) ;
2541+ assert_eq ! ( stmts. len( ) , 2 ) ;
2542+ assert_eq ! ( stmts[ 1 ] , Statement :: Go ( GoStatement { count: None } ) ) ;
2543+
25392544 let bare_go = "GO" ;
25402545 let stmts = ms ( ) . parse_sql_statements ( bare_go) . unwrap ( ) ;
25412546 assert_eq ! ( stmts. len( ) , 1 ) ;
@@ -2569,15 +2574,22 @@ fn parse_mssql_go_keyword() {
25692574 assert_eq ! ( stmts. len( ) , 2 ) ;
25702575 assert_eq ! ( stmts[ 1 ] , Statement :: Go ( GoStatement { count: None } ) ) ;
25712576
2572- let actually_column_alias = "SELECT NULL AS GO" ;
2573- let stmt = ms ( ) . verified_only_select ( actually_column_alias) ;
2574- assert_eq ! (
2575- only( stmt. projection) ,
2576- SelectItem :: ExprWithAlias {
2577- expr: Expr :: Value ( Value :: Null . with_empty_span( ) ) ,
2578- alias: Ident :: new( "GO" ) ,
2577+ let actually_column_alias = "SELECT NULL GO" ;
2578+ let stmts = ms ( ) . parse_sql_statements ( actually_column_alias) . unwrap ( ) ;
2579+ assert_eq ! ( stmts. len( ) , 1 ) ;
2580+ match & stmts[ 0 ] {
2581+ Statement :: Query ( query) => {
2582+ let select = query. body . as_select ( ) . unwrap ( ) ;
2583+ assert_eq ! (
2584+ only( select. clone( ) . projection) ,
2585+ SelectItem :: ExprWithAlias {
2586+ expr: Expr :: Value ( Value :: Null . with_empty_span( ) ) ,
2587+ alias: Ident :: new( "GO" ) ,
2588+ }
2589+ ) ;
25792590 }
2580- ) ;
2591+ _ => panic ! ( "Expected Query statement" ) ,
2592+ }
25812593
25822594 let invalid_go_position = "SELECT 1; GO" ;
25832595 let err = ms ( ) . parse_sql_statements ( invalid_go_position) ;
@@ -2590,7 +2602,7 @@ fn parse_mssql_go_keyword() {
25902602 let err = ms ( ) . parse_sql_statements ( invalid_go_count) ;
25912603 assert_eq ! (
25922604 err. unwrap_err( ) . to_string( ) ,
2593- "sql parser error: Expected: end of statement , found: x"
2605+ "sql parser error: Expected: literal int or newline , found: x"
25942606 ) ;
25952607}
25962608
0 commit comments