@@ -100,48 +100,52 @@ fn parse_mssql_delimited_identifiers() {
100
100
101
101
#[ test]
102
102
fn parse_create_procedure ( ) {
103
- let sql = "CREATE OR ALTER PROCEDURE test (@foo INT, @bar VARCHAR(256)) AS BEGIN SELECT 1 END" ;
103
+ let sql = "CREATE OR ALTER PROCEDURE test (@foo INT, @bar VARCHAR(256)) AS BEGIN SELECT 1; END" ;
104
104
105
105
assert_eq ! (
106
106
ms( ) . verified_stmt( sql) ,
107
107
Statement :: CreateProcedure {
108
108
or_alter: true ,
109
- body: vec![ Statement :: Query ( Box :: new( Query {
110
- with: None ,
111
- limit_clause: None ,
112
- fetch: None ,
113
- locks: vec![ ] ,
114
- for_clause: None ,
115
- order_by: None ,
116
- settings: None ,
117
- format_clause: None ,
118
- pipe_operators: vec![ ] ,
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
- } ) ) ] ,
109
+ body: BeginEndStatements {
110
+ begin_token: AttachedToken :: empty( ) ,
111
+ statements: vec![ Statement :: Query ( Box :: new( Query {
112
+ with: None ,
113
+ limit_clause: None ,
114
+ fetch: None ,
115
+ locks: vec![ ] ,
116
+ for_clause: None ,
117
+ order_by: None ,
118
+ settings: None ,
119
+ format_clause: None ,
120
+ pipe_operators: vec![ ] ,
121
+ body: Box :: new( SetExpr :: Select ( Box :: new( Select {
122
+ select_token: AttachedToken :: empty( ) ,
123
+ distinct: None ,
124
+ top: None ,
125
+ top_before_distinct: false ,
126
+ projection: vec![ SelectItem :: UnnamedExpr ( Expr :: Value (
127
+ ( number( "1" ) ) . with_empty_span( )
128
+ ) ) ] ,
129
+ into: None ,
130
+ from: vec![ ] ,
131
+ lateral_views: vec![ ] ,
132
+ prewhere: None ,
133
+ selection: None ,
134
+ group_by: GroupByExpr :: Expressions ( vec![ ] , vec![ ] ) ,
135
+ cluster_by: vec![ ] ,
136
+ distribute_by: vec![ ] ,
137
+ sort_by: vec![ ] ,
138
+ having: None ,
139
+ named_window: vec![ ] ,
140
+ window_before_qualify: false ,
141
+ qualify: None ,
142
+ value_table_mode: None ,
143
+ connect_by: None ,
144
+ flavor: SelectFlavor :: Standard ,
145
+ } ) ) )
146
+ } ) ) ] ,
147
+ end_token: AttachedToken :: empty( ) ,
148
+ } ,
145
149
params: Some ( vec![
146
150
ProcedureParam {
147
151
name: Ident {
@@ -174,19 +178,20 @@ fn parse_create_procedure() {
174
178
175
179
#[ test]
176
180
fn parse_mssql_create_procedure ( ) {
177
- let _ = ms_and_generic ( ) . verified_stmt ( "CREATE OR ALTER PROCEDURE foo AS BEGIN SELECT 1 END" ) ;
178
- let _ = ms_and_generic ( ) . verified_stmt ( "CREATE PROCEDURE foo AS BEGIN SELECT 1 END" ) ;
181
+ let _ = ms_and_generic ( ) . verified_stmt ( "CREATE OR ALTER PROCEDURE foo AS SELECT 1;" ) ;
182
+ let _ = ms_and_generic ( ) . verified_stmt ( "CREATE OR ALTER PROCEDURE foo AS BEGIN SELECT 1; END" ) ;
183
+ let _ = ms_and_generic ( ) . verified_stmt ( "CREATE PROCEDURE foo AS BEGIN SELECT 1; END" ) ;
179
184
let _ = ms ( ) . verified_stmt (
180
- "CREATE PROCEDURE foo AS BEGIN SELECT [myColumn] FROM [myschema].[mytable] END" ,
185
+ "CREATE PROCEDURE foo AS BEGIN SELECT [myColumn] FROM [myschema].[mytable]; END" ,
181
186
) ;
182
187
let _ = ms_and_generic ( ) . verified_stmt (
183
- "CREATE PROCEDURE foo (@CustomerName NVARCHAR(50)) AS BEGIN SELECT * FROM DEV END" ,
188
+ "CREATE PROCEDURE foo (@CustomerName NVARCHAR(50)) AS BEGIN SELECT * FROM DEV; END" ,
184
189
) ;
185
- let _ = ms ( ) . verified_stmt ( "CREATE PROCEDURE [foo] AS BEGIN UPDATE bar SET col = 'test' END" ) ;
190
+ let _ = ms ( ) . verified_stmt ( "CREATE PROCEDURE [foo] AS BEGIN UPDATE bar SET col = 'test'; END" ) ;
186
191
// Test a statement with END in it
187
- let _ = ms ( ) . verified_stmt ( "CREATE PROCEDURE [foo] AS BEGIN SELECT [foo], CASE WHEN [foo] IS NULL THEN 'empty' ELSE 'notempty' END AS [foo] END" ) ;
192
+ let _ = ms ( ) . verified_stmt ( "CREATE PROCEDURE [foo] AS BEGIN SELECT [foo], CASE WHEN [foo] IS NULL THEN 'empty' ELSE 'notempty' END AS [foo]; END" ) ;
188
193
// Multiple statements
189
- let _ = ms ( ) . verified_stmt ( "CREATE PROCEDURE [foo] AS BEGIN UPDATE bar SET col = 'test'; SELECT [foo] FROM BAR WHERE [FOO] > 10 END" ) ;
194
+ let _ = ms ( ) . verified_stmt ( "CREATE PROCEDURE [foo] AS BEGIN UPDATE bar SET col = 'test'; SELECT [foo] FROM BAR WHERE [FOO] > 10; END" ) ;
190
195
}
191
196
192
197
#[ test]
0 commit comments