@@ -99,47 +99,51 @@ fn parse_mssql_delimited_identifiers() {
9999
100100#[ test]
101101fn parse_create_procedure ( ) {
102- let sql = "CREATE OR ALTER PROCEDURE test (@foo INT, @bar VARCHAR(256)) AS BEGIN SELECT 1 END" ;
102+ let sql = "CREATE OR ALTER PROCEDURE test (@foo INT, @bar VARCHAR(256)) AS BEGIN SELECT 1; END" ;
103103
104104 assert_eq ! (
105105 ms( ) . verified_stmt( sql) ,
106106 Statement :: CreateProcedure {
107107 or_alter: true ,
108- body: vec![ Statement :: Query ( Box :: new( Query {
109- with: None ,
110- limit_clause: None ,
111- fetch: None ,
112- locks: vec![ ] ,
113- for_clause: None ,
114- order_by: None ,
115- settings: None ,
116- format_clause: None ,
117- body: Box :: new( SetExpr :: Select ( Box :: new( Select {
118- select_token: AttachedToken :: empty( ) ,
119- distinct: None ,
120- top: None ,
121- top_before_distinct: false ,
122- projection: vec![ SelectItem :: UnnamedExpr ( Expr :: Value (
123- ( number( "1" ) ) . with_empty_span( )
124- ) ) ] ,
125- into: None ,
126- from: vec![ ] ,
127- lateral_views: vec![ ] ,
128- prewhere: None ,
129- selection: None ,
130- group_by: GroupByExpr :: Expressions ( vec![ ] , vec![ ] ) ,
131- cluster_by: vec![ ] ,
132- distribute_by: vec![ ] ,
133- sort_by: vec![ ] ,
134- having: None ,
135- named_window: vec![ ] ,
136- window_before_qualify: false ,
137- qualify: None ,
138- value_table_mode: None ,
139- connect_by: None ,
140- flavor: SelectFlavor :: Standard ,
141- } ) ) )
142- } ) ) ] ,
108+ body: BeginEndStatements {
109+ begin_token: AttachedToken :: empty( ) ,
110+ statements: vec![ Statement :: Query ( Box :: new( Query {
111+ with: None ,
112+ limit_clause: None ,
113+ fetch: None ,
114+ locks: vec![ ] ,
115+ for_clause: None ,
116+ order_by: None ,
117+ settings: None ,
118+ format_clause: None ,
119+ body: Box :: new( SetExpr :: Select ( Box :: new( Select {
120+ select_token: AttachedToken :: empty( ) ,
121+ distinct: None ,
122+ top: None ,
123+ top_before_distinct: false ,
124+ projection: vec![ SelectItem :: UnnamedExpr ( Expr :: Value (
125+ ( number( "1" ) ) . with_empty_span( )
126+ ) ) ] ,
127+ into: None ,
128+ from: vec![ ] ,
129+ lateral_views: vec![ ] ,
130+ prewhere: None ,
131+ selection: None ,
132+ group_by: GroupByExpr :: Expressions ( vec![ ] , vec![ ] ) ,
133+ cluster_by: vec![ ] ,
134+ distribute_by: vec![ ] ,
135+ sort_by: vec![ ] ,
136+ having: None ,
137+ named_window: vec![ ] ,
138+ window_before_qualify: false ,
139+ qualify: None ,
140+ value_table_mode: None ,
141+ connect_by: None ,
142+ flavor: SelectFlavor :: Standard ,
143+ } ) ) )
144+ } ) ) ] ,
145+ end_token: AttachedToken :: empty( ) ,
146+ } ,
143147 params: Some ( vec![
144148 ProcedureParam {
145149 name: Ident {
@@ -172,19 +176,20 @@ fn parse_create_procedure() {
172176
173177#[ test]
174178fn parse_mssql_create_procedure ( ) {
175- let _ = ms_and_generic ( ) . verified_stmt ( "CREATE OR ALTER PROCEDURE foo AS BEGIN SELECT 1 END" ) ;
176- let _ = ms_and_generic ( ) . verified_stmt ( "CREATE PROCEDURE foo AS BEGIN SELECT 1 END" ) ;
179+ let _ = ms_and_generic ( ) . verified_stmt ( "CREATE OR ALTER PROCEDURE foo AS SELECT 1;" ) ;
180+ let _ = ms_and_generic ( ) . verified_stmt ( "CREATE OR ALTER PROCEDURE foo AS BEGIN SELECT 1; END" ) ;
181+ let _ = ms_and_generic ( ) . verified_stmt ( "CREATE PROCEDURE foo AS BEGIN SELECT 1; END" ) ;
177182 let _ = ms ( ) . verified_stmt (
178- "CREATE PROCEDURE foo AS BEGIN SELECT [myColumn] FROM [myschema].[mytable] END" ,
183+ "CREATE PROCEDURE foo AS BEGIN SELECT [myColumn] FROM [myschema].[mytable]; END" ,
179184 ) ;
180185 let _ = ms_and_generic ( ) . verified_stmt (
181- "CREATE PROCEDURE foo (@CustomerName NVARCHAR(50)) AS BEGIN SELECT * FROM DEV END" ,
186+ "CREATE PROCEDURE foo (@CustomerName NVARCHAR(50)) AS BEGIN SELECT * FROM DEV; END" ,
182187 ) ;
183- let _ = ms ( ) . verified_stmt ( "CREATE PROCEDURE [foo] AS BEGIN UPDATE bar SET col = 'test' END" ) ;
188+ let _ = ms ( ) . verified_stmt ( "CREATE PROCEDURE [foo] AS BEGIN UPDATE bar SET col = 'test'; END" ) ;
184189 // Test a statement with END in it
185- let _ = ms ( ) . verified_stmt ( "CREATE PROCEDURE [foo] AS BEGIN SELECT [foo], CASE WHEN [foo] IS NULL THEN 'empty' ELSE 'notempty' END AS [foo] END" ) ;
190+ let _ = ms ( ) . verified_stmt ( "CREATE PROCEDURE [foo] AS BEGIN SELECT [foo], CASE WHEN [foo] IS NULL THEN 'empty' ELSE 'notempty' END AS [foo]; END" ) ;
186191 // Multiple statements
187- let _ = ms ( ) . verified_stmt ( "CREATE PROCEDURE [foo] AS BEGIN UPDATE bar SET col = 'test'; SELECT [foo] FROM BAR WHERE [FOO] > 10 END" ) ;
192+ let _ = ms ( ) . verified_stmt ( "CREATE PROCEDURE [foo] AS BEGIN UPDATE bar SET col = 'test'; SELECT [foo] FROM BAR WHERE [FOO] > 10; END" ) ;
188193}
189194
190195#[ test]
0 commit comments