@@ -2313,16 +2313,46 @@ fn bigquery_select_expr_star() {
2313
2313
2314
2314
#[ test]
2315
2315
fn test_select_as_struct ( ) {
2316
- bigquery ( ) . verified_only_select ( "SELECT * FROM (SELECT AS VALUE STRUCT(123 AS a, false AS b))" ) ;
2316
+ for ( sql, parse_to) in [
2317
+ (
2318
+ "SELECT * FROM (SELECT AS STRUCT STRUCT(123 AS a, false AS b))" ,
2319
+ "SELECT * FROM (SELECT AS STRUCT STRUCT(123 AS a, false AS b))" ,
2320
+ ) ,
2321
+ (
2322
+ "SELECT * FROM (SELECT DISTINCT AS STRUCT STRUCT(123 AS a, false AS b))" ,
2323
+ "SELECT * FROM (SELECT DISTINCT AS STRUCT STRUCT(123 AS a, false AS b))" ,
2324
+ ) ,
2325
+ (
2326
+ "SELECT * FROM (SELECT ALL AS STRUCT STRUCT(123 AS a, false AS b))" ,
2327
+ "SELECT * FROM (SELECT AS STRUCT STRUCT(123 AS a, false AS b))" ,
2328
+ ) ,
2329
+ ] {
2330
+ bigquery ( ) . one_statement_parses_to ( sql, parse_to) ;
2331
+ }
2332
+
2317
2333
let select = bigquery ( ) . verified_only_select ( "SELECT AS STRUCT 1 AS a, 2 AS b" ) ;
2318
2334
assert_eq ! ( Some ( ValueTableMode :: AsStruct ) , select. value_table_mode) ;
2319
2335
}
2320
2336
2321
2337
#[ test]
2322
2338
fn test_select_as_value ( ) {
2323
- bigquery ( ) . verified_only_select (
2324
- "SELECT * FROM (SELECT AS VALUE STRUCT(5 AS star_rating, false AS up_down_rating))" ,
2325
- ) ;
2339
+ for ( sql, parse_to) in [
2340
+ (
2341
+ "SELECT * FROM (SELECT AS VALUE STRUCT(5 AS star_rating, false AS up_down_rating))" ,
2342
+ "SELECT * FROM (SELECT AS VALUE STRUCT(5 AS star_rating, false AS up_down_rating))" ,
2343
+ ) ,
2344
+ (
2345
+ "SELECT * FROM (SELECT DISTINCT AS VALUE STRUCT(5 AS star_rating, false AS up_down_rating))" ,
2346
+ "SELECT * FROM (SELECT DISTINCT AS VALUE STRUCT(5 AS star_rating, false AS up_down_rating))" ,
2347
+ ) ,
2348
+ (
2349
+ "SELECT * FROM (SELECT ALL AS VALUE STRUCT(5 AS star_rating, false AS up_down_rating))" ,
2350
+ "SELECT * FROM (SELECT AS VALUE STRUCT(5 AS star_rating, false AS up_down_rating))" ,
2351
+ ) ,
2352
+ ] {
2353
+ bigquery ( ) . one_statement_parses_to ( sql, parse_to) ;
2354
+ }
2355
+
2326
2356
let select = bigquery ( ) . verified_only_select ( "SELECT AS VALUE STRUCT(1 AS a, 2 AS b) AS xyz" ) ;
2327
2357
assert_eq ! ( Some ( ValueTableMode :: AsValue ) , select. value_table_mode) ;
2328
2358
}
0 commit comments