This repository was archived by the owner on Mar 6, 2026. It is now read-only.
File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -230,7 +230,9 @@ def _from_api_repr_struct(cls, resource):
230230 def _from_api_repr_scalar (cls , resource ):
231231 name = resource .get ("name" )
232232 array_type = resource ["parameterType" ]["arrayType" ]["type" ]
233- values = [value ["value" ] for value in resource ["parameterValue" ]["arrayValues" ]]
233+ parameter_value = resource .get ("parameterValue" , {})
234+ array_values = parameter_value .get ("arrayValues" , ())
235+ values = [value ["value" ] for value in array_values ]
234236 converted = [
235237 _QUERY_PARAMS_FROM_JSON [array_type ](value , None ) for value in values
236238 ]
Original file line number Diff line number Diff line change @@ -362,6 +362,18 @@ def test_from_api_repr_wo_name(self):
362362 self .assertEqual (param .array_type , "INT64" )
363363 self .assertEqual (param .values , [1 , 2 ])
364364
365+ def test_from_api_repr_wo_values (self ):
366+ # Back-end may not send back values for empty array params. See #7309
367+ RESOURCE = {
368+ "name" : "foo" ,
369+ "parameterType" : {"type" : "ARRAY" , "arrayType" : {"type" : "INT64" }},
370+ }
371+ klass = self ._get_target_class ()
372+ param = klass .from_api_repr (RESOURCE )
373+ self .assertEqual (param .name , "foo" )
374+ self .assertEqual (param .array_type , "INT64" )
375+ self .assertEqual (param .values , [])
376+
365377 def test_from_api_repr_w_struct_type (self ):
366378 from google .cloud .bigquery .query import StructQueryParameter
367379
You can’t perform that action at this time.
0 commit comments