@@ -2520,7 +2520,6 @@ DECLARE @Y AS NVARCHAR(MAX)='y'
25202520#[ test]  
25212521fn  test_supports_statements_without_semicolon_delimiter ( )  { 
25222522    use  sqlparser:: ast:: Ident ; 
2523- 
25242523    use  sqlparser:: tokenizer:: Location ; 
25252524
25262525    fn  parse_n_statements ( n :  usize ,  sql :  & str )  -> Vec < Statement >  { 
@@ -2830,4 +2829,118 @@ fn test_supports_statements_without_semicolon_delimiter() {
28302829            } , 
28312830        } 
28322831    ) ; 
2832+ 
2833+     let  exec_then_update = "\  
2834+ \ 
2835+ \ 
2836+ ; 
2837+     assert_eq ! ( 
2838+         parse_n_statements( 2 ,  exec_then_update) , 
2839+         vec![ 
2840+             Statement :: Execute  { 
2841+                 name:  Some ( ObjectName :: from( vec![ Ident :: new( "my_sp" ) ] ) ) , 
2842+                 parameters:  vec![ ] , 
2843+                 has_parentheses:  false , 
2844+                 immediate:  false , 
2845+                 into:  vec![ ] , 
2846+                 using:  vec![ ] , 
2847+                 output:  false , 
2848+                 default :  false , 
2849+             } , 
2850+             Statement :: Update  { 
2851+                 table:  TableWithJoins  { 
2852+                     relation:  TableFactor :: Table  { 
2853+                         name:  ObjectName :: from( vec![ Ident :: new( "my_table" ) ] ) , 
2854+                         alias:  None , 
2855+                         with_hints:  vec![ ] , 
2856+                         args:  None , 
2857+                         version:  None , 
2858+                         with_ordinality:  false , 
2859+                         partitions:  vec![ ] , 
2860+                         json_path:  None , 
2861+                         sample:  None , 
2862+                         index_hints:  vec![ ] 
2863+                     } , 
2864+                     joins:  vec![ ] , 
2865+                 } , 
2866+                 assignments:  vec![ Assignment  { 
2867+                     value:  Expr :: Value ( 
2868+                         number( "1" ) 
2869+                             . with_span( Span :: new( Location :: new( 3 ,  16 ) ,  Location :: new( 3 ,  17 ) ) ) 
2870+                     ) , 
2871+                     target:  AssignmentTarget :: ColumnName ( ObjectName :: from( vec![ Ident :: new( "col" ) ] ) ) , 
2872+                 } , ] , 
2873+                 selection:  None , 
2874+                 returning:  None , 
2875+                 from:  None , 
2876+                 or:  None 
2877+             } , 
2878+         ] 
2879+     ) ; 
2880+ 
2881+     let  exec_params_then_update = "\  
2882+ \ 
2883+ \ 
2884+ ; 
2885+     assert_eq ! ( 
2886+         parse_n_statements( 2 ,  exec_params_then_update) , 
2887+         vec![ 
2888+             Statement :: Execute  { 
2889+                 name:  Some ( ObjectName :: from( vec![ Ident :: with_span( 
2890+                     Span :: new( Location :: new( 1 ,  6 ) ,  Location :: new( 1 ,  11 ) ) , 
2891+                     "my_sp" 
2892+                 ) ] ) ) , 
2893+                 parameters:  vec![ 
2894+                     Expr :: Value ( 
2895+                         number( "1" ) 
2896+                             . with_span( Span :: new( Location :: new( 1 ,  12 ) ,  Location :: new( 1 ,  13 ) ) ) 
2897+                     ) , 
2898+                     Expr :: Value ( 
2899+                         number( "2" ) 
2900+                             . with_span( Span :: new( Location :: new( 1 ,  15 ) ,  Location :: new( 1 ,  17 ) ) ) 
2901+                     ) , 
2902+                 ] , 
2903+                 has_parentheses:  false , 
2904+                 immediate:  false , 
2905+                 into:  vec![ ] , 
2906+                 using:  vec![ ] , 
2907+                 output:  false , 
2908+                 default :  false , 
2909+             } , 
2910+             Statement :: Update  { 
2911+                 table:  TableWithJoins  { 
2912+                     relation:  TableFactor :: Table  { 
2913+                         name:  ObjectName :: from( vec![ Ident :: with_span( 
2914+                             Span :: new( Location :: new( 1 ,  24 ) ,  Location :: new( 1 ,  32 ) ) , 
2915+                             "my_table" 
2916+                         ) ] ) , 
2917+                         alias:  None , 
2918+                         with_hints:  vec![ ] , 
2919+                         args:  None , 
2920+                         version:  None , 
2921+                         with_ordinality:  false , 
2922+                         partitions:  vec![ ] , 
2923+                         json_path:  None , 
2924+                         sample:  None , 
2925+                         index_hints:  vec![ ] 
2926+                     } , 
2927+                     joins:  vec![ ] , 
2928+                 } , 
2929+                 assignments:  vec![ Assignment  { 
2930+                     value:  Expr :: Value ( 
2931+                         number( "1" ) 
2932+                             . with_span( Span :: new( Location :: new( 3 ,  16 ) ,  Location :: new( 3 ,  17 ) ) ) 
2933+                     ) , 
2934+                     target:  AssignmentTarget :: ColumnName ( ObjectName :: from( vec![ Ident :: with_span( 
2935+                         Span :: new( Location :: new( 1 ,  37 ) ,  Location :: new( 1 ,  40 ) ) , 
2936+                         "col" 
2937+                     ) ] ) ) , 
2938+                 } , ] , 
2939+                 selection:  None , 
2940+                 returning:  None , 
2941+                 from:  None , 
2942+                 or:  None 
2943+             } , 
2944+         ] 
2945+     ) ; 
28332946} 
0 commit comments