@@ -2313,16 +2313,46 @@ fn bigquery_select_expr_star() {
23132313
23142314#[ test]
23152315fn 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+
23172333 let select = bigquery ( ) . verified_only_select ( "SELECT AS STRUCT 1 AS a, 2 AS b" ) ;
23182334 assert_eq ! ( Some ( ValueTableMode :: AsStruct ) , select. value_table_mode) ;
23192335}
23202336
23212337#[ test]
23222338fn 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+
23262356 let select = bigquery ( ) . verified_only_select ( "SELECT AS VALUE STRUCT(1 AS a, 2 AS b) AS xyz" ) ;
23272357 assert_eq ! ( Some ( ValueTableMode :: AsValue ) , select. value_table_mode) ;
23282358}
@@ -2377,27 +2407,3 @@ fn test_any_type() {
23772407fn test_any_type_dont_break_custom_type ( ) {
23782408 bigquery_and_generic ( ) . verified_stmt ( "CREATE TABLE foo (x ANY)" ) ;
23792409}
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