@@ -1566,7 +1566,7 @@ fn test_mssql_cursor() {
1566
1566
CLOSE Employee_Cursor; \
1567
1567
DEALLOCATE Employee_Cursor\
1568
1568
";
1569
- let _ = ms ( ) . statements_parse_to ( full_cursor_usage, "" ) ;
1569
+ let _ = ms ( ) . multiple_statements_parse_to ( full_cursor_usage, 6 , "" ) ;
1570
1570
}
1571
1571
1572
1572
#[ test]
@@ -2511,28 +2511,27 @@ DECLARE @Y AS NVARCHAR(MAX)='y'
2511
2511
#[ test]
2512
2512
fn parse_mssql_go_keyword ( ) {
2513
2513
let single_go_keyword = "USE some_database;\n GO" ;
2514
- let stmts = ms ( ) . parse_sql_statements ( single_go_keyword) . unwrap ( ) ;
2515
- assert_eq ! ( stmts. len( ) , 2 ) ;
2516
- assert_eq ! ( stmts[ 1 ] , Statement :: Go ( GoStatement { count: None } ) , ) ;
2514
+ let stmts = ms ( ) . multiple_statements_parse_to ( single_go_keyword, 2 , "USE some_database\n GO" ) ;
2515
+ assert_eq ! ( stmts[ 1 ] , Statement :: Go ( GoStatement { count: None } ) ) ;
2517
2516
2518
2517
let go_with_count = "SELECT 1;\n GO 5" ;
2519
- let stmts = ms ( ) . parse_sql_statements ( go_with_count) . unwrap ( ) ;
2520
- assert_eq ! ( stmts. len( ) , 2 ) ;
2518
+ let stmts = ms ( ) . multiple_statements_parse_to ( go_with_count, 2 , "SELECT 1\n GO 5" ) ;
2521
2519
assert_eq ! ( stmts[ 1 ] , Statement :: Go ( GoStatement { count: Some ( 5 ) } ) ) ;
2522
2520
2523
2521
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 ) ;
2522
+ let stmts = ms ( ) . multiple_statements_parse_to ( go_statement_delimiter, 2 , "SELECT 1; \n GO" ) ;
2526
2523
assert_eq ! ( stmts[ 1 ] , Statement :: Go ( GoStatement { count: None } ) ) ;
2527
2524
2528
2525
let bare_go = "GO" ;
2529
- let stmts = ms ( ) . parse_sql_statements ( bare_go) . unwrap ( ) ;
2530
- assert_eq ! ( stmts. len( ) , 1 ) ;
2531
- assert_eq ! ( stmts[ 0 ] , Statement :: Go ( GoStatement { count: None } ) ) ;
2526
+ let stmt = ms ( ) . one_statement_parses_to ( bare_go, "GO" ) ;
2527
+ assert_eq ! ( stmt, Statement :: Go ( GoStatement { count: None } ) ) ;
2532
2528
2533
2529
let go_then_statements = "/* whitespace */ GO\n RAISERROR('This is a test', 16, 1);" ;
2534
- let stmts = ms ( ) . parse_sql_statements ( go_then_statements) . unwrap ( ) ;
2535
- assert_eq ! ( stmts. len( ) , 2 ) ;
2530
+ let stmts = ms ( ) . multiple_statements_parse_to (
2531
+ go_then_statements,
2532
+ 2 ,
2533
+ "GO\n RAISERROR('This is a test', 16, 1)" ,
2534
+ ) ;
2536
2535
assert_eq ! ( stmts[ 0 ] , Statement :: Go ( GoStatement { count: None } ) ) ;
2537
2536
assert_eq ! (
2538
2537
stmts[ 1 ] ,
@@ -2548,41 +2547,45 @@ fn parse_mssql_go_keyword() {
2548
2547
) ;
2549
2548
2550
2549
let multiple_gos = "SELECT 1;\n GO 5\n SELECT 2;\n GO" ;
2551
- let stmts = ms ( ) . parse_sql_statements ( multiple_gos) . unwrap ( ) ;
2552
- assert_eq ! ( stmts. len( ) , 4 ) ;
2550
+ let stmts = ms ( ) . multiple_statements_parse_to ( multiple_gos, 4 , "SELECT 1\n GO 5\n SELECT 2\n GO" ) ;
2553
2551
assert_eq ! ( stmts[ 1 ] , Statement :: Go ( GoStatement { count: Some ( 5 ) } ) ) ;
2554
2552
assert_eq ! ( stmts[ 3 ] , Statement :: Go ( GoStatement { count: None } ) ) ;
2555
2553
2556
2554
let single_line_comment_preceding_go = "USE some_database; -- okay\n GO" ;
2557
- let stmts = ms ( )
2558
- . parse_sql_statements ( single_line_comment_preceding_go)
2559
- . unwrap ( ) ;
2560
- assert_eq ! ( stmts. len( ) , 2 ) ;
2555
+ let stmts = ms ( ) . multiple_statements_parse_to (
2556
+ single_line_comment_preceding_go,
2557
+ 2 ,
2558
+ "USE some_database\n GO" ,
2559
+ ) ;
2561
2560
assert_eq ! ( stmts[ 1 ] , Statement :: Go ( GoStatement { count: None } ) ) ;
2562
2561
2563
2562
let multi_line_comment_preceding_go = "USE some_database; /* okay */\n GO" ;
2564
- let stmts = ms ( )
2565
- . parse_sql_statements ( multi_line_comment_preceding_go)
2566
- . unwrap ( ) ;
2567
- assert_eq ! ( stmts. len( ) , 2 ) ;
2563
+ let stmts = ms ( ) . multiple_statements_parse_to (
2564
+ multi_line_comment_preceding_go,
2565
+ 2 ,
2566
+ "USE some_database\n GO" ,
2567
+ ) ;
2568
2568
assert_eq ! ( stmts[ 1 ] , Statement :: Go ( GoStatement { count: None } ) ) ;
2569
2569
2570
2570
let single_line_comment_following_go = "USE some_database;\n GO -- okay" ;
2571
- let stmts = ms ( ) . parse_sql_statements ( single_line_comment_following_go) . unwrap ( ) ;
2572
- assert_eq ! ( stmts. len( ) , 2 ) ;
2571
+ let stmts = ms ( ) . multiple_statements_parse_to (
2572
+ single_line_comment_following_go,
2573
+ 2 ,
2574
+ "USE some_database\n GO" ,
2575
+ ) ;
2573
2576
assert_eq ! ( stmts[ 1 ] , Statement :: Go ( GoStatement { count: None } ) ) ;
2574
2577
2575
2578
let multi_line_comment_following = "USE some_database;\n GO/* okay */42" ;
2576
- let stmts = ms ( )
2577
- . parse_sql_statements ( multi_line_comment_following)
2578
- . unwrap ( ) ;
2579
- assert_eq ! ( stmts. len( ) , 2 ) ;
2579
+ let stmts = ms ( ) . multiple_statements_parse_to (
2580
+ multi_line_comment_following,
2581
+ 2 ,
2582
+ "USE some_database\n GO 42" ,
2583
+ ) ;
2580
2584
assert_eq ! ( stmts[ 1 ] , Statement :: Go ( GoStatement { count: Some ( 42 ) } ) ) ;
2581
2585
2582
2586
let actually_column_alias = "SELECT NULL GO" ;
2583
- let stmts = ms ( ) . parse_sql_statements ( actually_column_alias) . unwrap ( ) ;
2584
- assert_eq ! ( stmts. len( ) , 1 ) ;
2585
- match & stmts[ 0 ] {
2587
+ let stmt = ms ( ) . one_statement_parses_to ( actually_column_alias, "SELECT NULL AS GO" ) ;
2588
+ match & stmt {
2586
2589
Statement :: Query ( query) => {
2587
2590
let select = query. body . as_select ( ) . unwrap ( ) ;
2588
2591
assert_eq ! (
0 commit comments