@@ -635,35 +635,6 @@ fn parse_nested_data_types() {
635
635
}
636
636
}
637
637
638
- #[ test]
639
- fn parse_invalid_brackets ( ) {
640
- let sql = "SELECT STRUCT<INT64>>(NULL)" ;
641
- assert_eq ! (
642
- bigquery_and_generic( )
643
- . parse_sql_statements( sql)
644
- . unwrap_err( ) ,
645
- ParserError :: ParserError ( "unmatched > in STRUCT literal" . to_string( ) )
646
- ) ;
647
-
648
- let sql = "SELECT STRUCT<STRUCT<INT64>>>(NULL)" ;
649
- assert_eq ! (
650
- bigquery_and_generic( )
651
- . parse_sql_statements( sql)
652
- . unwrap_err( ) ,
653
- ParserError :: ParserError ( "Expected: (, found: >" . to_string( ) )
654
- ) ;
655
-
656
- let sql = "CREATE TABLE table (x STRUCT<STRUCT<INT64>>>)" ;
657
- assert_eq ! (
658
- bigquery_and_generic( )
659
- . parse_sql_statements( sql)
660
- . unwrap_err( ) ,
661
- ParserError :: ParserError (
662
- "Expected: ',' or ')' after column definition, found: >" . to_string( )
663
- )
664
- ) ;
665
- }
666
-
667
638
#[ test]
668
639
fn parse_tuple_struct_literal ( ) {
669
640
// tuple syntax: https://cloud.google.com/bigquery/docs/reference/standard-sql/data-types#tuple_syntax
@@ -2474,7 +2445,7 @@ fn test_struct_field_options() {
2474
2445
}
2475
2446
2476
2447
#[ test]
2477
- fn test_struct_trailing_bracket ( ) {
2448
+ fn test_struct_trailing_and_nested_bracket ( ) {
2478
2449
bigquery ( ) . verified_stmt ( concat ! (
2479
2450
"CREATE TABLE my_table (" ,
2480
2451
"f0 STRING, " ,
@@ -2520,4 +2491,30 @@ fn test_struct_trailing_bracket() {
2520
2491
. parse_sql_statements( "CREATE TABLE my_table(f1 STRUCT<a STRUCT<b INT>>>, c INT64)" )
2521
2492
. unwrap_err( )
2522
2493
) ;
2494
+
2495
+ let sql = "SELECT STRUCT<INT64>>(NULL)" ;
2496
+ assert_eq ! (
2497
+ bigquery_and_generic( )
2498
+ . parse_sql_statements( sql)
2499
+ . unwrap_err( ) ,
2500
+ ParserError :: ParserError ( "unmatched > in STRUCT literal" . to_string( ) )
2501
+ ) ;
2502
+
2503
+ let sql = "SELECT STRUCT<STRUCT<INT64>>>(NULL)" ;
2504
+ assert_eq ! (
2505
+ bigquery_and_generic( )
2506
+ . parse_sql_statements( sql)
2507
+ . unwrap_err( ) ,
2508
+ ParserError :: ParserError ( "Expected: (, found: >" . to_string( ) )
2509
+ ) ;
2510
+
2511
+ let sql = "CREATE TABLE table (x STRUCT<STRUCT<INT64>>>)" ;
2512
+ assert_eq ! (
2513
+ bigquery_and_generic( )
2514
+ . parse_sql_statements( sql)
2515
+ . unwrap_err( ) ,
2516
+ ParserError :: ParserError (
2517
+ "Expected: ',' or ')' after column definition, found: >" . to_string( )
2518
+ )
2519
+ ) ;
2523
2520
}
0 commit comments