@@ -2067,6 +2067,11 @@ fn parse_mssql_go_keyword() {
20672067 assert_eq ! ( stmts. len( ) , 2 ) ;
20682068 assert_eq ! ( stmts[ 1 ] , Statement :: Go ( GoStatement { count: Some ( 5 ) } ) ) ;
20692069
2070+ let go_statement_delimiter = "SELECT 1\n GO" ;
2071+ let stmts = ms ( ) . parse_sql_statements ( go_statement_delimiter) . unwrap ( ) ;
2072+ assert_eq ! ( stmts. len( ) , 2 ) ;
2073+ assert_eq ! ( stmts[ 1 ] , Statement :: Go ( GoStatement { count: None } ) ) ;
2074+
20702075 let bare_go = "GO" ;
20712076 let stmts = ms ( ) . parse_sql_statements ( bare_go) . unwrap ( ) ;
20722077 assert_eq ! ( stmts. len( ) , 1 ) ;
@@ -2100,15 +2105,22 @@ fn parse_mssql_go_keyword() {
21002105 assert_eq ! ( stmts. len( ) , 2 ) ;
21012106 assert_eq ! ( stmts[ 1 ] , Statement :: Go ( GoStatement { count: None } ) ) ;
21022107
2103- let actually_column_alias = "SELECT NULL AS GO" ;
2104- let stmt = ms ( ) . verified_only_select ( actually_column_alias) ;
2105- assert_eq ! (
2106- only( stmt. projection) ,
2107- SelectItem :: ExprWithAlias {
2108- expr: Expr :: Value ( Value :: Null . with_empty_span( ) ) ,
2109- alias: Ident :: new( "GO" ) ,
2108+ let actually_column_alias = "SELECT NULL GO" ;
2109+ let stmts = ms ( ) . parse_sql_statements ( actually_column_alias) . unwrap ( ) ;
2110+ assert_eq ! ( stmts. len( ) , 1 ) ;
2111+ match & stmts[ 0 ] {
2112+ Statement :: Query ( query) => {
2113+ let select = query. body . as_select ( ) . unwrap ( ) ;
2114+ assert_eq ! (
2115+ only( select. clone( ) . projection) ,
2116+ SelectItem :: ExprWithAlias {
2117+ expr: Expr :: Value ( Value :: Null . with_empty_span( ) ) ,
2118+ alias: Ident :: new( "GO" ) ,
2119+ }
2120+ ) ;
21102121 }
2111- ) ;
2122+ _ => panic ! ( "Expected Query statement" ) ,
2123+ }
21122124
21132125 let invalid_go_position = "SELECT 1; GO" ;
21142126 let err = ms ( ) . parse_sql_statements ( invalid_go_position) ;
@@ -2121,7 +2133,7 @@ fn parse_mssql_go_keyword() {
21212133 let err = ms ( ) . parse_sql_statements ( invalid_go_count) ;
21222134 assert_eq ! (
21232135 err. unwrap_err( ) . to_string( ) ,
2124- "sql parser error: Expected: end of statement , found: x"
2136+ "sql parser error: Expected: literal int or newline , found: x"
21252137 ) ;
21262138}
21272139
0 commit comments