@@ -99,47 +99,51 @@ fn parse_mssql_delimited_identifiers() {
99
99
100
100
#[ test]
101
101
fn 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" ;
103
103
104
104
assert_eq ! (
105
105
ms( ) . verified_stmt( sql) ,
106
106
Statement :: CreateProcedure {
107
107
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
+ } ,
143
147
params: Some ( vec![
144
148
ProcedureParam {
145
149
name: Ident {
@@ -172,19 +176,20 @@ fn parse_create_procedure() {
172
176
173
177
#[ test]
174
178
fn 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" ) ;
177
182
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" ,
179
184
) ;
180
185
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" ,
182
187
) ;
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" ) ;
184
189
// 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" ) ;
186
191
// 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" ) ;
188
193
}
189
194
190
195
#[ test]
0 commit comments