@@ -2170,6 +2170,11 @@ fn parse_mssql_go_keyword() {
21702170 assert_eq ! ( stmts. len( ) , 2 ) ;
21712171 assert_eq ! ( stmts[ 1 ] , Statement :: Go ( GoStatement { count: Some ( 5 ) } ) ) ;
21722172
2173+ let go_statement_delimiter = "SELECT 1\n GO" ;
2174+ let stmts = ms ( ) . parse_sql_statements ( go_statement_delimiter) . unwrap ( ) ;
2175+ assert_eq ! ( stmts. len( ) , 2 ) ;
2176+ assert_eq ! ( stmts[ 1 ] , Statement :: Go ( GoStatement { count: None } ) ) ;
2177+
21732178 let bare_go = "GO" ;
21742179 let stmts = ms ( ) . parse_sql_statements ( bare_go) . unwrap ( ) ;
21752180 assert_eq ! ( stmts. len( ) , 1 ) ;
@@ -2203,15 +2208,22 @@ fn parse_mssql_go_keyword() {
22032208 assert_eq ! ( stmts. len( ) , 2 ) ;
22042209 assert_eq ! ( stmts[ 1 ] , Statement :: Go ( GoStatement { count: None } ) ) ;
22052210
2206- let actually_column_alias = "SELECT NULL AS GO" ;
2207- let stmt = ms ( ) . verified_only_select ( actually_column_alias) ;
2208- assert_eq ! (
2209- only( stmt. projection) ,
2210- SelectItem :: ExprWithAlias {
2211- expr: Expr :: Value ( Value :: Null . with_empty_span( ) ) ,
2212- alias: Ident :: new( "GO" ) ,
2211+ let actually_column_alias = "SELECT NULL GO" ;
2212+ let stmts = ms ( ) . parse_sql_statements ( actually_column_alias) . unwrap ( ) ;
2213+ assert_eq ! ( stmts. len( ) , 1 ) ;
2214+ match & stmts[ 0 ] {
2215+ Statement :: Query ( query) => {
2216+ let select = query. body . as_select ( ) . unwrap ( ) ;
2217+ assert_eq ! (
2218+ only( select. clone( ) . projection) ,
2219+ SelectItem :: ExprWithAlias {
2220+ expr: Expr :: Value ( Value :: Null . with_empty_span( ) ) ,
2221+ alias: Ident :: new( "GO" ) ,
2222+ }
2223+ ) ;
22132224 }
2214- ) ;
2225+ _ => panic ! ( "Expected Query statement" ) ,
2226+ }
22152227
22162228 let invalid_go_position = "SELECT 1; GO" ;
22172229 let err = ms ( ) . parse_sql_statements ( invalid_go_position) ;
@@ -2224,7 +2236,7 @@ fn parse_mssql_go_keyword() {
22242236 let err = ms ( ) . parse_sql_statements ( invalid_go_count) ;
22252237 assert_eq ! (
22262238 err. unwrap_err( ) . to_string( ) ,
2227- "sql parser error: Expected: end of statement , found: x"
2239+ "sql parser error: Expected: literal int or newline , found: x"
22282240 ) ;
22292241}
22302242
0 commit comments