@@ -210,7 +210,6 @@ fn parse_update_set_from() {
210
210
name: ObjectName ( vec![ Ident :: new( "t1" ) ] ) ,
211
211
alias: None ,
212
212
args: None ,
213
- columns_definition: None ,
214
213
with_hints: vec![ ] ,
215
214
} ,
216
215
joins: vec![ ] ,
@@ -237,7 +236,6 @@ fn parse_update_set_from() {
237
236
name: ObjectName ( vec![ Ident :: new( "t1" ) ] ) ,
238
237
alias: None ,
239
238
args: None ,
240
- columns_definition: None ,
241
239
with_hints: vec![ ] ,
242
240
} ,
243
241
joins: vec![ ] ,
@@ -300,7 +298,6 @@ fn parse_update_with_table_alias() {
300
298
columns: vec![ ] ,
301
299
} ) ,
302
300
args: None ,
303
- columns_definition: None ,
304
301
with_hints: vec![ ] ,
305
302
} ,
306
303
joins: vec![ ] ,
@@ -333,6 +330,43 @@ fn parse_update_with_table_alias() {
333
330
}
334
331
}
335
332
333
+ #[ test]
334
+ fn parse_select_with_table_alias_as ( ) {
335
+ // AS is optional
336
+ one_statement_parses_to (
337
+ "SELECT a, b, c FROM lineitem l (A, B, C)" ,
338
+ "SELECT a, b, c FROM lineitem AS l (A, B, C)" ,
339
+ ) ;
340
+ }
341
+
342
+ #[ test]
343
+ fn parse_select_with_table_alias ( ) {
344
+ let select = verified_only_select ( "SELECT a, b, c FROM lineitem AS l (A, B, C)" ) ;
345
+ assert_eq ! (
346
+ select. projection,
347
+ vec![
348
+ SelectItem :: UnnamedExpr ( Expr :: Identifier ( Ident :: new( "a" ) ) , ) ,
349
+ SelectItem :: UnnamedExpr ( Expr :: Identifier ( Ident :: new( "b" ) ) , ) ,
350
+ SelectItem :: UnnamedExpr ( Expr :: Identifier ( Ident :: new( "c" ) ) , ) ,
351
+ ]
352
+ ) ;
353
+ assert_eq ! (
354
+ select. from,
355
+ vec![ TableWithJoins {
356
+ relation: TableFactor :: Table {
357
+ name: ObjectName ( vec![ Ident :: new( "lineitem" ) ] ) ,
358
+ alias: Some ( TableAlias {
359
+ name: Ident :: new( "l" ) ,
360
+ columns: vec![ Ident :: new( "A" ) , Ident :: new( "B" ) , Ident :: new( "C" ) , ] ,
361
+ } ) ,
362
+ args: None ,
363
+ with_hints: vec![ ] ,
364
+ } ,
365
+ joins: vec![ ] ,
366
+ } ]
367
+ ) ;
368
+ }
369
+
336
370
#[ test]
337
371
fn parse_invalid_table_name ( ) {
338
372
let ast = all_dialects ( )
@@ -356,7 +390,6 @@ fn parse_delete_statement() {
356
390
name: ObjectName ( vec![ Ident :: with_quote( '"' , "table" ) ] ) ,
357
391
alias: None ,
358
392
args: None ,
359
- columns_definition: None ,
360
393
with_hints: vec![ ] ,
361
394
} ,
362
395
table_name
@@ -383,7 +416,6 @@ fn parse_where_delete_statement() {
383
416
name: ObjectName ( vec![ Ident :: new( "foo" ) ] ) ,
384
417
alias: None ,
385
418
args: None ,
386
- columns_definition: None ,
387
419
with_hints: vec![ ] ,
388
420
} ,
389
421
table_name,
@@ -424,7 +456,6 @@ fn parse_where_delete_with_alias_statement() {
424
456
columns: vec![ ] ,
425
457
} ) ,
426
458
args: None ,
427
- columns_definition: None ,
428
459
with_hints: vec![ ] ,
429
460
} ,
430
461
table_name,
@@ -438,7 +469,6 @@ fn parse_where_delete_with_alias_statement() {
438
469
columns: vec![ ] ,
439
470
} ) ,
440
471
args: None ,
441
- columns_definition: None ,
442
472
with_hints: vec![ ] ,
443
473
} ) ,
444
474
using
@@ -3465,7 +3495,6 @@ fn parse_interval_and_or_xor() {
3465
3495
} ] ) ,
3466
3496
alias: None ,
3467
3497
args: None ,
3468
- columns_definition: None ,
3469
3498
with_hints: vec![ ] ,
3470
3499
} ,
3471
3500
joins: vec![ ] ,
@@ -3981,7 +4010,6 @@ fn parse_implicit_join() {
3981
4010
name: ObjectName ( vec![ "t1" . into( ) ] ) ,
3982
4011
alias: None ,
3983
4012
args: None ,
3984
- columns_definition: None ,
3985
4013
with_hints: vec![ ] ,
3986
4014
} ,
3987
4015
joins: vec![ ] ,
@@ -3991,7 +4019,6 @@ fn parse_implicit_join() {
3991
4019
name: ObjectName ( vec![ "t2" . into( ) ] ) ,
3992
4020
alias: None ,
3993
4021
args: None ,
3994
- columns_definition: None ,
3995
4022
with_hints: vec![ ] ,
3996
4023
} ,
3997
4024
joins: vec![ ] ,
@@ -4009,15 +4036,13 @@ fn parse_implicit_join() {
4009
4036
name: ObjectName ( vec![ "t1a" . into( ) ] ) ,
4010
4037
alias: None ,
4011
4038
args: None ,
4012
- columns_definition: None ,
4013
4039
with_hints: vec![ ] ,
4014
4040
} ,
4015
4041
joins: vec![ Join {
4016
4042
relation: TableFactor :: Table {
4017
4043
name: ObjectName ( vec![ "t1b" . into( ) ] ) ,
4018
4044
alias: None ,
4019
4045
args: None ,
4020
- columns_definition: None ,
4021
4046
with_hints: vec![ ] ,
4022
4047
} ,
4023
4048
join_operator: JoinOperator :: Inner ( JoinConstraint :: Natural ) ,
@@ -4028,15 +4053,13 @@ fn parse_implicit_join() {
4028
4053
name: ObjectName ( vec![ "t2a" . into( ) ] ) ,
4029
4054
alias: None ,
4030
4055
args: None ,
4031
- columns_definition: None ,
4032
4056
with_hints: vec![ ] ,
4033
4057
} ,
4034
4058
joins: vec![ Join {
4035
4059
relation: TableFactor :: Table {
4036
4060
name: ObjectName ( vec![ "t2b" . into( ) ] ) ,
4037
4061
alias: None ,
4038
4062
args: None ,
4039
- columns_definition: None ,
4040
4063
with_hints: vec![ ] ,
4041
4064
} ,
4042
4065
join_operator: JoinOperator :: Inner ( JoinConstraint :: Natural ) ,
@@ -4057,7 +4080,6 @@ fn parse_cross_join() {
4057
4080
name: ObjectName ( vec![ Ident :: new( "t2" ) ] ) ,
4058
4081
alias: None ,
4059
4082
args: None ,
4060
- columns_definition: None ,
4061
4083
with_hints: vec![ ] ,
4062
4084
} ,
4063
4085
join_operator: JoinOperator :: CrossJoin ,
@@ -4078,7 +4100,6 @@ fn parse_joins_on() {
4078
4100
name : ObjectName ( vec ! [ Ident :: new( relation. into( ) ) ] ) ,
4079
4101
alias,
4080
4102
args : None ,
4081
- columns_definition : None ,
4082
4103
with_hints : vec ! [ ] ,
4083
4104
} ,
4084
4105
join_operator : f ( JoinConstraint :: On ( Expr :: BinaryOp {
@@ -4148,7 +4169,6 @@ fn parse_joins_using() {
4148
4169
name : ObjectName ( vec ! [ Ident :: new( relation. into( ) ) ] ) ,
4149
4170
alias,
4150
4171
args : None ,
4151
- columns_definition : None ,
4152
4172
with_hints : vec ! [ ] ,
4153
4173
} ,
4154
4174
join_operator : f ( JoinConstraint :: Using ( vec ! [ "c1" . into( ) ] ) ) ,
@@ -4210,7 +4230,6 @@ fn parse_natural_join() {
4210
4230
name : ObjectName ( vec ! [ Ident :: new( "t2" ) ] ) ,
4211
4231
alias,
4212
4232
args : None ,
4213
- columns_definition : None ,
4214
4233
with_hints : vec ! [ ] ,
4215
4234
} ,
4216
4235
join_operator : f ( JoinConstraint :: Natural ) ,
@@ -4475,7 +4494,6 @@ fn parse_derived_tables() {
4475
4494
name: ObjectName ( vec![ "t2" . into( ) ] ) ,
4476
4495
alias: None ,
4477
4496
args: None ,
4478
- columns_definition: None ,
4479
4497
with_hints: vec![ ] ,
4480
4498
} ,
4481
4499
join_operator: JoinOperator :: Inner ( JoinConstraint :: Natural ) ,
@@ -5767,7 +5785,6 @@ fn parse_merge() {
5767
5785
columns: vec![ ] ,
5768
5786
} ) ,
5769
5787
args: None ,
5770
- columns_definition: None ,
5771
5788
with_hints: vec![ ] ,
5772
5789
}
5773
5790
) ;
@@ -5791,7 +5808,6 @@ fn parse_merge() {
5791
5808
name: ObjectName ( vec![ Ident :: new( "s" ) , Ident :: new( "foo" ) ] ) ,
5792
5809
alias: None ,
5793
5810
args: None ,
5794
- columns_definition: None ,
5795
5811
with_hints: vec![ ] ,
5796
5812
} ,
5797
5813
joins: vec![ ] ,
0 commit comments