@@ -2520,6 +2520,11 @@ fn parse_mssql_go_keyword() {
25202520 assert_eq ! ( stmts. len( ) , 2 ) ;
25212521 assert_eq ! ( stmts[ 1 ] , Statement :: Go ( GoStatement { count: Some ( 5 ) } ) ) ;
25222522
2523+ let go_statement_delimiter = "SELECT 1\n GO" ;
2524+ let stmts = ms ( ) . parse_sql_statements ( go_statement_delimiter) . unwrap ( ) ;
2525+ assert_eq ! ( stmts. len( ) , 2 ) ;
2526+ assert_eq ! ( stmts[ 1 ] , Statement :: Go ( GoStatement { count: None } ) ) ;
2527+
25232528 let bare_go = "GO" ;
25242529 let stmts = ms ( ) . parse_sql_statements ( bare_go) . unwrap ( ) ;
25252530 assert_eq ! ( stmts. len( ) , 1 ) ;
@@ -2553,15 +2558,22 @@ fn parse_mssql_go_keyword() {
25532558 assert_eq ! ( stmts. len( ) , 2 ) ;
25542559 assert_eq ! ( stmts[ 1 ] , Statement :: Go ( GoStatement { count: None } ) ) ;
25552560
2556- let actually_column_alias = "SELECT NULL AS GO" ;
2557- let stmt = ms ( ) . verified_only_select ( actually_column_alias) ;
2558- assert_eq ! (
2559- only( stmt. projection) ,
2560- SelectItem :: ExprWithAlias {
2561- expr: Expr :: Value ( Value :: Null . with_empty_span( ) ) ,
2562- alias: Ident :: new( "GO" ) ,
2561+ let actually_column_alias = "SELECT NULL GO" ;
2562+ let stmts = ms ( ) . parse_sql_statements ( actually_column_alias) . unwrap ( ) ;
2563+ assert_eq ! ( stmts. len( ) , 1 ) ;
2564+ match & stmts[ 0 ] {
2565+ Statement :: Query ( query) => {
2566+ let select = query. body . as_select ( ) . unwrap ( ) ;
2567+ assert_eq ! (
2568+ only( select. clone( ) . projection) ,
2569+ SelectItem :: ExprWithAlias {
2570+ expr: Expr :: Value ( Value :: Null . with_empty_span( ) ) ,
2571+ alias: Ident :: new( "GO" ) ,
2572+ }
2573+ ) ;
25632574 }
2564- ) ;
2575+ _ => panic ! ( "Expected Query statement" ) ,
2576+ }
25652577
25662578 let invalid_go_position = "SELECT 1; GO" ;
25672579 let err = ms ( ) . parse_sql_statements ( invalid_go_position) ;
@@ -2574,7 +2586,7 @@ fn parse_mssql_go_keyword() {
25742586 let err = ms ( ) . parse_sql_statements ( invalid_go_count) ;
25752587 assert_eq ! (
25762588 err. unwrap_err( ) . to_string( ) ,
2577- "sql parser error: Expected: end of statement , found: x"
2589+ "sql parser error: Expected: literal int or newline , found: x"
25782590 ) ;
25792591}
25802592
0 commit comments