@@ -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}
0 commit comments