@@ -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
}
@@ -2377,27 +2407,3 @@ fn test_any_type() {
2377
2407
fn test_any_type_dont_break_custom_type ( ) {
2378
2408
bigquery_and_generic ( ) . verified_stmt ( "CREATE TABLE foo (x ANY)" ) ;
2379
2409
}
2380
-
2381
- #[ test]
2382
- fn test_select_distinct_or_all_as_struct_or_value ( ) {
2383
- for sql in [
2384
- "SELECT DISTINCT AS STRUCT a, ABS(b) FROM UNNEST(c) AS T" ,
2385
- "SELECT DISTINCT AS VALUE a, ABS(b) FROM UNNEST(c) AS T" ,
2386
- "SELECT ARRAY(SELECT DISTINCT AS STRUCT a, b, ABS(c) AS c, ABS(d) AS d FROM UNNEST(e) AS T)" ,
2387
- ] {
2388
- bigquery ( ) . verified_stmt ( sql) ;
2389
- }
2390
-
2391
- for ( sql, parse_to) in [
2392
- (
2393
- "SELECT ALL AS STRUCT a, ABS(b) FROM UNNEST(c) AS T" ,
2394
- "SELECT AS STRUCT a, ABS(b) FROM UNNEST(c) AS T" ,
2395
- ) ,
2396
- (
2397
- "SELECT ALL AS VALUE a, ABS(b) FROM UNNEST(c) AS T" ,
2398
- "SELECT AS VALUE a, ABS(b) FROM UNNEST(c) AS T" ,
2399
- ) ,
2400
- ] {
2401
- bigquery ( ) . one_statement_parses_to ( sql, parse_to) ;
2402
- }
2403
- }
0 commit comments