@@ -2084,6 +2084,11 @@ fn parse_mssql_go_keyword() {
2084
2084
assert_eq ! ( stmts. len( ) , 2 ) ;
2085
2085
assert_eq ! ( stmts[ 1 ] , Statement :: Go ( GoStatement { count: Some ( 5 ) } ) ) ;
2086
2086
2087
+ let go_statement_delimiter = "SELECT 1\n GO" ;
2088
+ let stmts = ms ( ) . parse_sql_statements ( go_statement_delimiter) . unwrap ( ) ;
2089
+ assert_eq ! ( stmts. len( ) , 2 ) ;
2090
+ assert_eq ! ( stmts[ 1 ] , Statement :: Go ( GoStatement { count: None } ) ) ;
2091
+
2087
2092
let bare_go = "GO" ;
2088
2093
let stmts = ms ( ) . parse_sql_statements ( bare_go) . unwrap ( ) ;
2089
2094
assert_eq ! ( stmts. len( ) , 1 ) ;
@@ -2117,15 +2122,22 @@ fn parse_mssql_go_keyword() {
2117
2122
assert_eq ! ( stmts. len( ) , 2 ) ;
2118
2123
assert_eq ! ( stmts[ 1 ] , Statement :: Go ( GoStatement { count: None } ) ) ;
2119
2124
2120
- let actually_column_alias = "SELECT NULL AS GO" ;
2121
- let stmt = ms ( ) . verified_only_select ( actually_column_alias) ;
2122
- assert_eq ! (
2123
- only( stmt. projection) ,
2124
- SelectItem :: ExprWithAlias {
2125
- expr: Expr :: Value ( Value :: Null . with_empty_span( ) ) ,
2126
- alias: Ident :: new( "GO" ) ,
2125
+ let actually_column_alias = "SELECT NULL GO" ;
2126
+ let stmts = ms ( ) . parse_sql_statements ( actually_column_alias) . unwrap ( ) ;
2127
+ assert_eq ! ( stmts. len( ) , 1 ) ;
2128
+ match & stmts[ 0 ] {
2129
+ Statement :: Query ( query) => {
2130
+ let select = query. body . as_select ( ) . unwrap ( ) ;
2131
+ assert_eq ! (
2132
+ only( select. clone( ) . projection) ,
2133
+ SelectItem :: ExprWithAlias {
2134
+ expr: Expr :: Value ( Value :: Null . with_empty_span( ) ) ,
2135
+ alias: Ident :: new( "GO" ) ,
2136
+ }
2137
+ ) ;
2127
2138
}
2128
- ) ;
2139
+ _ => panic ! ( "Expected Query statement" ) ,
2140
+ }
2129
2141
2130
2142
let invalid_go_position = "SELECT 1; GO" ;
2131
2143
let err = ms ( ) . parse_sql_statements ( invalid_go_position) ;
@@ -2138,7 +2150,7 @@ fn parse_mssql_go_keyword() {
2138
2150
let err = ms ( ) . parse_sql_statements ( invalid_go_count) ;
2139
2151
assert_eq ! (
2140
2152
err. unwrap_err( ) . to_string( ) ,
2141
- "sql parser error: Expected: end of statement , found: x"
2153
+ "sql parser error: Expected: literal int or newline , found: x"
2142
2154
) ;
2143
2155
}
2144
2156
0 commit comments