@@ -4479,112 +4479,50 @@ fn test_unicode_string_literal() {
4479
4479
4480
4480
fn check_arrow_precedence ( sql : & str , arrow_operator : BinaryOperator ) {
4481
4481
assert_eq ! (
4482
- pg( ) . verified_stmt( sql) ,
4483
- Statement :: Query ( Box :: new( Query {
4484
- with: None ,
4485
- body: Box :: new( SetExpr :: Select ( Box :: new( Select {
4486
- distinct: None ,
4487
- top: None ,
4488
- projection: vec![ SelectItem :: UnnamedExpr ( Expr :: BinaryOp {
4489
- left: Box :: new( Expr :: BinaryOp {
4490
- left: Box :: new( Expr :: Identifier ( Ident {
4491
- value: "foo" . to_string( ) ,
4492
- quote_style: None ,
4493
- } ) ) ,
4494
- op: arrow_operator,
4495
- right: Box :: new( Expr :: Value ( Value :: SingleQuotedString ( "bar" . to_string( ) ) ) ) ,
4496
- } ) ,
4497
- op: BinaryOperator :: Eq ,
4498
- right: Box :: new( Expr :: Value ( Value :: SingleQuotedString ( "spam" . to_string( ) ) ) ) ,
4499
- } ) ] ,
4500
- into: None ,
4501
- from: vec![ ] ,
4502
- lateral_views: vec![ ] ,
4503
- prewhere: None ,
4504
- selection: None ,
4505
- group_by: GroupByExpr :: Expressions ( vec![ ] , vec![ ] ) ,
4506
- cluster_by: vec![ ] ,
4507
- distribute_by: vec![ ] ,
4508
- sort_by: vec![ ] ,
4509
- having: None ,
4510
- named_window: vec![ ] ,
4511
- qualify: None ,
4512
- window_before_qualify: false ,
4513
- value_table_mode: None ,
4514
- connect_by: None ,
4515
- } ) ) ) ,
4516
- order_by: None ,
4517
- limit: None ,
4518
- limit_by: vec![ ] ,
4519
- offset: None ,
4520
- fetch: None ,
4521
- locks: vec![ ] ,
4522
- for_clause: None ,
4523
- settings: None ,
4524
- format_clause: None ,
4525
- } ) )
4482
+ pg( ) . verified_expr( sql) ,
4483
+ Expr :: BinaryOp {
4484
+ left: Box :: new( Expr :: BinaryOp {
4485
+ left: Box :: new( Expr :: Identifier ( Ident {
4486
+ value: "foo" . to_string( ) ,
4487
+ quote_style: None ,
4488
+ } ) ) ,
4489
+ op: arrow_operator,
4490
+ right: Box :: new( Expr :: Value ( Value :: SingleQuotedString ( "bar" . to_string( ) ) ) ) ,
4491
+ } ) ,
4492
+ op: BinaryOperator :: Eq ,
4493
+ right: Box :: new( Expr :: Value ( Value :: SingleQuotedString ( "spam" . to_string( ) ) ) ) ,
4494
+ }
4526
4495
)
4527
4496
}
4528
4497
4529
4498
#[ test]
4530
4499
fn arrow_precedence ( ) {
4531
- check_arrow_precedence ( "SELECT foo -> 'bar' = 'spam'" , BinaryOperator :: Arrow ) ;
4500
+ check_arrow_precedence ( "foo -> 'bar' = 'spam'" , BinaryOperator :: Arrow ) ;
4532
4501
}
4533
4502
4534
4503
#[ test]
4535
4504
fn long_arrow_precedence ( ) {
4536
- check_arrow_precedence ( "SELECT foo ->> 'bar' = 'spam'" , BinaryOperator :: LongArrow ) ;
4505
+ check_arrow_precedence ( "foo ->> 'bar' = 'spam'" , BinaryOperator :: LongArrow ) ;
4537
4506
}
4538
4507
4539
4508
#[ test]
4540
4509
fn arrow_cast_precedence ( ) {
4541
4510
// check this matches postgres where you would need `(foo -> 'bar')::TEXT`
4542
- let stmt = pg ( ) . verified_stmt ( "SELECT foo -> 'bar'::TEXT") ;
4511
+ let stmt = pg ( ) . verified_expr ( " foo -> 'bar'::TEXT") ;
4543
4512
assert_eq ! (
4544
4513
stmt,
4545
- Statement :: Query ( Box :: new( Query {
4546
- with: None ,
4547
- body: Box :: new( SetExpr :: Select ( Box :: new( Select {
4548
- distinct: None ,
4549
- top: None ,
4550
- projection: vec![ SelectItem :: UnnamedExpr ( Expr :: BinaryOp {
4551
- left: Box :: new( Expr :: Identifier ( Ident {
4552
- value: "foo" . to_string( ) ,
4553
- quote_style: None ,
4554
- } ) ) ,
4555
- op: BinaryOperator :: Arrow ,
4556
- right: Box :: new( Expr :: Cast {
4557
- kind: CastKind :: DoubleColon ,
4558
- expr: Box :: new( Expr :: Value ( Value :: SingleQuotedString ( "bar" . to_string( ) ) ) ) ,
4559
- data_type: DataType :: Text ,
4560
- format: None ,
4561
- } ) ,
4562
- } ) ] ,
4563
- into: None ,
4564
- from: vec![ ] ,
4565
- lateral_views: vec![ ] ,
4566
- prewhere: None ,
4567
- selection: None ,
4568
- group_by: GroupByExpr :: Expressions ( vec![ ] , vec![ ] ) ,
4569
- cluster_by: vec![ ] ,
4570
- distribute_by: vec![ ] ,
4571
- sort_by: vec![ ] ,
4572
- having: None ,
4573
- named_window: vec![ ] ,
4574
- qualify: None ,
4575
- window_before_qualify: false ,
4576
- value_table_mode: None ,
4577
- connect_by: None ,
4578
- } ) ) ) ,
4579
- order_by: None ,
4580
- limit: None ,
4581
- limit_by: vec![ ] ,
4582
- offset: None ,
4583
- fetch: None ,
4584
- locks: vec![ ] ,
4585
- for_clause: None ,
4586
- settings: None ,
4587
- format_clause: None ,
4588
- } ) )
4514
+ Expr :: BinaryOp {
4515
+ left: Box :: new( Expr :: Identifier ( Ident {
4516
+ value: "foo" . to_string( ) ,
4517
+ quote_style: None ,
4518
+ } ) ) ,
4519
+ op: BinaryOperator :: Arrow ,
4520
+ right: Box :: new( Expr :: Cast {
4521
+ kind: CastKind :: DoubleColon ,
4522
+ expr: Box :: new( Expr :: Value ( Value :: SingleQuotedString ( "bar" . to_string( ) ) ) ) ,
4523
+ data_type: DataType :: Text ,
4524
+ format: None ,
4525
+ } ) ,
4526
+ }
4589
4527
)
4590
4528
}
0 commit comments