@@ -2067,6 +2067,11 @@ fn parse_mssql_go_keyword() {
2067
2067
assert_eq ! ( stmts. len( ) , 2 ) ;
2068
2068
assert_eq ! ( stmts[ 1 ] , Statement :: Go ( GoStatement { count: Some ( 5 ) } ) ) ;
2069
2069
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
+
2070
2075
let bare_go = "GO" ;
2071
2076
let stmts = ms ( ) . parse_sql_statements ( bare_go) . unwrap ( ) ;
2072
2077
assert_eq ! ( stmts. len( ) , 1 ) ;
@@ -2100,15 +2105,22 @@ fn parse_mssql_go_keyword() {
2100
2105
assert_eq ! ( stmts. len( ) , 2 ) ;
2101
2106
assert_eq ! ( stmts[ 1 ] , Statement :: Go ( GoStatement { count: None } ) ) ;
2102
2107
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
+ ) ;
2110
2121
}
2111
- ) ;
2122
+ _ => panic ! ( "Expected Query statement" ) ,
2123
+ }
2112
2124
2113
2125
let invalid_go_position = "SELECT 1; GO" ;
2114
2126
let err = ms ( ) . parse_sql_statements ( invalid_go_position) ;
@@ -2121,7 +2133,7 @@ fn parse_mssql_go_keyword() {
2121
2133
let err = ms ( ) . parse_sql_statements ( invalid_go_count) ;
2122
2134
assert_eq ! (
2123
2135
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"
2125
2137
) ;
2126
2138
}
2127
2139
0 commit comments